KILLED proof of input_zS1rxEZDti.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), 42 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 717 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) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (32) CdtProblem (33) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CdtProblem (35) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtLeafRemovalProof [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) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 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), 11 ms] (80) CdtProblem (81) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (84) CdtProblem (85) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 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), 5 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtLeafRemovalProof [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), 0 ms] (138) CdtProblem (139) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 4 ms] (142) CdtProblem (143) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (144) CdtProblem (145) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (146) CdtProblem (147) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 43 ms] (154) CdtProblem (155) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 6 ms] (164) CdtProblem (165) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (166) CdtProblem (167) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 2 ms] (168) CdtProblem (169) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (170) CdtProblem (171) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 8 ms] (172) CdtProblem (173) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (174) CdtProblem (175) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (176) CdtProblem (177) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (180) CdtProblem (181) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 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), 0 ms] (190) CdtProblem (191) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (192) CdtProblem (193) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 36 ms] (194) CdtProblem (195) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (196) CdtProblem (197) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (198) CdtProblem (199) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (200) CdtProblem (201) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 39 ms] (202) CdtProblem (203) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (204) CdtProblem (205) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 68 ms] (206) CdtProblem (207) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (208) CdtProblem (209) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 89 ms] (210) CdtProblem (211) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (212) CdtProblem (213) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 68 ms] (214) CdtProblem (215) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (216) 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__zeros -> cons(0, zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__U21(tt) -> nil a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) a__and(tt, X) -> mark(X) a__isNat(0) -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__length(nil) -> 0 a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) a__take(0, IL) -> a__U21(a__isNatIList(IL)) a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0) -> 0 mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__U21(X) -> U21(X) a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) a__take(X1, X2) -> take(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) 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__zeros -> cons(0', zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__U21(tt) -> nil a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) a__and(tt, X) -> mark(X) a__isNat(0') -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) a__take(0', IL) -> a__U21(a__isNatIList(IL)) a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__U21(X) -> U21(X) a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) a__take(X1, X2) -> take(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) 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__zeros -> cons(0, zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__U21(tt) -> nil a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) a__and(tt, X) -> mark(X) a__isNat(0) -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__length(nil) -> 0 a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) a__take(0, IL) -> a__U21(a__isNatIList(IL)) a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0) -> 0 mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__U21(X) -> U21(X) a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) a__take(X1, X2) -> take(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) 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__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__U21(tt) -> nil [1] a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] a__take(0, IL) -> a__U21(a__isNatIList(IL)) [1] a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(U21(X)) -> a__U21(mark(X)) [1] mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__U21(X) -> U21(X) [1] a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) [1] a__take(X1, X2) -> take(X1, X2) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [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__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__U21(tt) -> nil [1] a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] a__take(0, IL) -> a__U21(a__isNatIList(IL)) [1] a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(U21(X)) -> a__U21(mark(X)) [1] mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__U21(X) -> U21(X) [1] a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) [1] a__take(X1, X2) -> take(X1, X2) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 cons :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 0 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 tt :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 s :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 mark :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 nil :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 Rewrite Strategy: INNERMOST ---------------------------------------- (9) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: a__isNat_1 a__isNatIList_1 a__and_2 a__isNatList_1 mark_1 a__length_1 a__U21_1 a__take_2 a__U11_2 a__zeros a__U31_4 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__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__U21(tt) -> nil [1] a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] a__take(0, IL) -> a__U21(a__isNatIList(IL)) [1] a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(U21(X)) -> a__U21(mark(X)) [1] mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__U21(X) -> U21(X) [1] a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) [1] a__take(X1, X2) -> take(X1, X2) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 cons :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 0 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 tt :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 s :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 mark :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 nil :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 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__zeros -> cons(0, zeros) [1] a__U11(tt, zeros) -> s(a__length(a__zeros)) [2] a__U11(tt, U11(X1', X2')) -> s(a__length(a__U11(mark(X1'), X2'))) [2] a__U11(tt, length(X')) -> s(a__length(a__length(mark(X')))) [2] a__U11(tt, U21(X'')) -> s(a__length(a__U21(mark(X'')))) [2] a__U11(tt, U31(X1'', X2'', X3', X4')) -> s(a__length(a__U31(mark(X1''), X2'', X3', X4'))) [2] a__U11(tt, take(X11, X21)) -> s(a__length(a__take(mark(X11), mark(X21)))) [2] a__U11(tt, and(X12, X22)) -> s(a__length(a__and(mark(X12), X22))) [2] a__U11(tt, isNat(X5)) -> s(a__length(a__isNat(X5))) [2] a__U11(tt, isNatList(X6)) -> s(a__length(a__isNatList(X6))) [2] a__U11(tt, isNatIList(X7)) -> s(a__length(a__isNatIList(X7))) [2] a__U11(tt, cons(X13, X23)) -> s(a__length(cons(mark(X13), X23))) [2] a__U11(tt, 0) -> s(a__length(0)) [2] a__U11(tt, tt) -> s(a__length(tt)) [2] a__U11(tt, s(X8)) -> s(a__length(s(mark(X8)))) [2] a__U11(tt, nil) -> s(a__length(nil)) [2] a__U21(tt) -> nil [1] a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(0, V2)) -> a__and(tt, isNatIList(V2)) [2] a__isNatIList(cons(length(V1'), V2)) -> a__and(a__isNatList(V1'), isNatIList(V2)) [2] a__isNatIList(cons(s(V1''), V2)) -> a__and(a__isNat(V1''), isNatIList(V2)) [2] a__isNatIList(cons(V1, V2)) -> a__and(isNat(V1), isNatIList(V2)) [2] a__isNatList(nil) -> tt [1] a__isNatList(cons(0, V2)) -> a__and(tt, isNatList(V2)) [2] a__isNatList(cons(length(V11), V2)) -> a__and(a__isNatList(V11), isNatList(V2)) [2] a__isNatList(cons(s(V12), V2)) -> a__and(a__isNat(V12), isNatList(V2)) [2] a__isNatList(cons(V1, V2)) -> a__and(isNat(V1), isNatList(V2)) [2] a__isNatList(take(0, V2)) -> a__and(tt, isNatIList(V2)) [2] a__isNatList(take(length(V13), V2)) -> a__and(a__isNatList(V13), isNatIList(V2)) [2] a__isNatList(take(s(V14), V2)) -> a__and(a__isNat(V14), isNatIList(V2)) [2] a__isNatList(take(V1, V2)) -> a__and(isNat(V1), isNatIList(V2)) [2] a__length(nil) -> 0 [1] a__length(cons(N, nil)) -> a__U11(a__and(tt, isNat(N)), nil) [2] a__length(cons(N, cons(V15, V2'))) -> a__U11(a__and(a__and(a__isNat(V15), isNatList(V2')), isNat(N)), cons(V15, V2')) [2] a__length(cons(N, take(V16, V2''))) -> a__U11(a__and(a__and(a__isNat(V16), isNatIList(V2'')), isNat(N)), take(V16, V2'')) [2] a__length(cons(N, L)) -> a__U11(a__and(isNatList(L), isNat(N)), L) [2] a__take(0, IL) -> a__U21(a__isNatList(IL)) [2] a__take(0, zeros) -> a__U21(tt) [2] a__take(0, cons(V17, V21)) -> a__U21(a__and(a__isNat(V17), isNatIList(V21))) [2] a__take(0, IL) -> a__U21(isNatIList(IL)) [2] a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatList(IL), and(isNat(M), isNat(N))), IL, M, N) [2] a__take(s(M), cons(N, zeros)) -> a__U31(a__and(tt, and(isNat(M), isNat(N))), zeros, M, N) [2] a__take(s(M), cons(N, cons(V18, V22))) -> a__U31(a__and(a__and(a__isNat(V18), isNatIList(V22)), and(isNat(M), isNat(N))), cons(V18, V22), M, N) [2] a__take(s(M), cons(N, IL)) -> a__U31(a__and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) [2] mark(zeros) -> a__zeros [1] mark(U11(zeros, X2)) -> a__U11(a__zeros, X2) [2] mark(U11(U11(X14, X24), X2)) -> a__U11(a__U11(mark(X14), X24), X2) [2] mark(U11(length(X9), X2)) -> a__U11(a__length(mark(X9)), X2) [2] mark(U11(U21(X10), X2)) -> a__U11(a__U21(mark(X10)), X2) [2] mark(U11(U31(X15, X25, X3'', X4''), X2)) -> a__U11(a__U31(mark(X15), X25, X3'', X4''), X2) [2] mark(U11(take(X16, X26), X2)) -> a__U11(a__take(mark(X16), mark(X26)), X2) [2] mark(U11(and(X17, X27), X2)) -> a__U11(a__and(mark(X17), X27), X2) [2] mark(U11(isNat(X18), X2)) -> a__U11(a__isNat(X18), X2) [2] mark(U11(isNatList(X19), X2)) -> a__U11(a__isNatList(X19), X2) [2] mark(U11(isNatIList(X20), X2)) -> a__U11(a__isNatIList(X20), X2) [2] mark(U11(cons(X110, X28), X2)) -> a__U11(cons(mark(X110), X28), X2) [2] mark(U11(0, X2)) -> a__U11(0, X2) [2] mark(U11(tt, X2)) -> a__U11(tt, X2) [2] mark(U11(s(X29), X2)) -> a__U11(s(mark(X29)), X2) [2] mark(U11(nil, X2)) -> a__U11(nil, X2) [2] mark(length(zeros)) -> a__length(a__zeros) [2] mark(length(U11(X111, X210))) -> a__length(a__U11(mark(X111), X210)) [2] mark(length(length(X30))) -> a__length(a__length(mark(X30))) [2] mark(length(U21(X31))) -> a__length(a__U21(mark(X31))) [2] mark(length(U31(X112, X211, X32, X41))) -> a__length(a__U31(mark(X112), X211, X32, X41)) [2] mark(length(take(X113, X212))) -> a__length(a__take(mark(X113), mark(X212))) [2] mark(length(and(X114, X213))) -> a__length(a__and(mark(X114), X213)) [2] mark(length(isNat(X33))) -> a__length(a__isNat(X33)) [2] mark(length(isNatList(X34))) -> a__length(a__isNatList(X34)) [2] mark(length(isNatIList(X35))) -> a__length(a__isNatIList(X35)) [2] mark(length(cons(X115, X214))) -> a__length(cons(mark(X115), X214)) [2] mark(length(0)) -> a__length(0) [2] mark(length(tt)) -> a__length(tt) [2] mark(length(s(X36))) -> a__length(s(mark(X36))) [2] mark(length(nil)) -> a__length(nil) [2] mark(U21(zeros)) -> a__U21(a__zeros) [2] mark(U21(U11(X116, X215))) -> a__U21(a__U11(mark(X116), X215)) [2] mark(U21(length(X37))) -> a__U21(a__length(mark(X37))) [2] mark(U21(U21(X38))) -> a__U21(a__U21(mark(X38))) [2] mark(U21(U31(X117, X216, X39, X42))) -> a__U21(a__U31(mark(X117), X216, X39, X42)) [2] mark(U21(take(X118, X217))) -> a__U21(a__take(mark(X118), mark(X217))) [2] mark(U21(and(X119, X218))) -> a__U21(a__and(mark(X119), X218)) [2] mark(U21(isNat(X40))) -> a__U21(a__isNat(X40)) [2] mark(U21(isNatList(X43))) -> a__U21(a__isNatList(X43)) [2] mark(U21(isNatIList(X44))) -> a__U21(a__isNatIList(X44)) [2] mark(U21(cons(X120, X219))) -> a__U21(cons(mark(X120), X219)) [2] mark(U21(0)) -> a__U21(0) [2] mark(U21(tt)) -> a__U21(tt) [2] mark(U21(s(X45))) -> a__U21(s(mark(X45))) [2] mark(U21(nil)) -> a__U21(nil) [2] mark(U31(zeros, X2, X3, X4)) -> a__U31(a__zeros, X2, X3, X4) [2] mark(U31(U11(X121, X220), X2, X3, X4)) -> a__U31(a__U11(mark(X121), X220), X2, X3, X4) [2] mark(U31(length(X46), X2, X3, X4)) -> a__U31(a__length(mark(X46)), X2, X3, X4) [2] mark(U31(U21(X47), X2, X3, X4)) -> a__U31(a__U21(mark(X47)), X2, X3, X4) [2] mark(U31(U31(X122, X221, X310, X48), X2, X3, X4)) -> a__U31(a__U31(mark(X122), X221, X310, X48), X2, X3, X4) [2] mark(U31(take(X123, X222), X2, X3, X4)) -> a__U31(a__take(mark(X123), mark(X222)), X2, X3, X4) [2] mark(U31(and(X124, X223), X2, X3, X4)) -> a__U31(a__and(mark(X124), X223), X2, X3, X4) [2] mark(U31(isNat(X49), X2, X3, X4)) -> a__U31(a__isNat(X49), X2, X3, X4) [2] mark(U31(isNatList(X50), X2, X3, X4)) -> a__U31(a__isNatList(X50), X2, X3, X4) [2] mark(U31(isNatIList(X51), X2, X3, X4)) -> a__U31(a__isNatIList(X51), X2, X3, X4) [2] mark(U31(cons(X125, X224), X2, X3, X4)) -> a__U31(cons(mark(X125), X224), X2, X3, X4) [2] mark(U31(0, X2, X3, X4)) -> a__U31(0, X2, X3, X4) [2] mark(U31(tt, X2, X3, X4)) -> a__U31(tt, X2, X3, X4) [2] mark(U31(s(X52), X2, X3, X4)) -> a__U31(s(mark(X52)), X2, X3, X4) [2] mark(U31(nil, X2, X3, X4)) -> a__U31(nil, X2, X3, X4) [2] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(and(zeros, X2)) -> a__and(a__zeros, X2) [2] mark(and(U11(X1120, X2109), X2)) -> a__and(a__U11(mark(X1120), X2109), X2) [2] mark(and(length(X328), X2)) -> a__and(a__length(mark(X328)), X2) [2] mark(and(U21(X329), X2)) -> a__and(a__U21(mark(X329)), X2) [2] mark(and(U31(X1121, X2110, X330, X426), X2)) -> a__and(a__U31(mark(X1121), X2110, X330, X426), X2) [2] mark(and(take(X1122, X2111), X2)) -> a__and(a__take(mark(X1122), mark(X2111)), X2) [2] mark(and(and(X1123, X2112), X2)) -> a__and(a__and(mark(X1123), X2112), X2) [2] mark(and(isNat(X331), X2)) -> a__and(a__isNat(X331), X2) [2] mark(and(isNatList(X332), X2)) -> a__and(a__isNatList(X332), X2) [2] mark(and(isNatIList(X333), X2)) -> a__and(a__isNatIList(X333), X2) [2] mark(and(cons(X1124, X2113), X2)) -> a__and(cons(mark(X1124), X2113), X2) [2] mark(and(0, X2)) -> a__and(0, X2) [2] mark(and(tt, X2)) -> a__and(tt, X2) [2] mark(and(s(X334), X2)) -> a__and(s(mark(X334)), X2) [2] mark(and(nil, X2)) -> a__and(nil, X2) [2] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__U21(X) -> U21(X) [1] a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) [1] a__take(X1, X2) -> take(X1, X2) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 cons :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 0 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 tt :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 s :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 mark :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 nil :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 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: 0 => 0 zeros => 3 tt => 2 nil => 1 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 2 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X11), mark(X21))) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X'))) :|: z = 2, X' >= 0, z' = 1 + X' a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X6)) :|: z = 2, X6 >= 0, z' = 1 + X6 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X7)) :|: z = 2, X7 >= 0, z' = 1 + X7 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U31(mark(X1''), X2'', X3', X4')) :|: z = 2, z' = 1 + X1'' + X2'' + X3' + X4', X1'' >= 0, X3' >= 0, X4' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U21(mark(X''))) :|: z = 2, z' = 1 + X'', X'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__U21(z) -{ 1 }-> 1 :|: z = 2 a__U21(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__U31(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z1 = N, z' = IL, M >= 0, IL >= 0, z'' = M, N >= 0 a__U31(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__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V13), 1 + V2) :|: V13 >= 0, V2 >= 0, z = 1 + (1 + V13) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V14), 1 + V2) :|: V14 >= 0, z = 1 + (1 + V14) + V2, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V15), 1 + V2'), 1 + N), 1 + V15 + V2') :|: V15 >= 0, z = 1 + N + (1 + V15 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V16), 1 + V2''), 1 + N), 1 + V16 + V2'') :|: V2'' >= 0, V16 >= 0, z = 1 + N + (1 + V16 + V2''), N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + N), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 2 }-> a__U31(a__and(a__isNatList(IL), 1 + (1 + M) + (1 + N)), IL, M, N) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(a__and(a__isNat(V18), 1 + V22), 1 + (1 + M) + (1 + N)), 1 + V18 + V22, M, N) :|: V18 >= 0, V22 >= 0, z = 1 + M, z' = 1 + N + (1 + V18 + V22), M >= 0, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(2, 1 + (1 + M) + (1 + N)), 3, M, N) :|: z = 1 + M, M >= 0, z' = 1 + N + 3, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(1 + IL, 1 + (1 + M) + (1 + N)), IL, M, N) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U21(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__U21(a__and(a__isNat(V17), 1 + V21)) :|: z' = 1 + V17 + V21, V21 >= 0, z = 0, V17 >= 0 a__take(z, z') -{ 2 }-> a__U21(2) :|: z' = 3, z = 0 a__take(z, z') -{ 2 }-> a__U21(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__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 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__take(mark(X113), mark(X212))) :|: X113 >= 0, X212 >= 0, z = 1 + (1 + X113 + X212) mark(z) -{ 2 }-> a__length(a__length(mark(X30))) :|: z = 1 + (1 + X30), X30 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X34)) :|: z = 1 + (1 + X34), X34 >= 0 mark(z) -{ 2 }-> a__length(a__isNatIList(X35)) :|: z = 1 + (1 + X35), X35 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X33)) :|: X33 >= 0, z = 1 + (1 + X33) mark(z) -{ 2 }-> a__length(a__and(mark(X114), X213)) :|: X114 >= 0, X213 >= 0, z = 1 + (1 + X114 + X213) mark(z) -{ 2 }-> a__length(a__U31(mark(X112), X211, X32, X41)) :|: X32 >= 0, z = 1 + (1 + X112 + X211 + X32 + X41), X112 >= 0, X211 >= 0, X41 >= 0 mark(z) -{ 2 }-> a__length(a__U21(mark(X31))) :|: X31 >= 0, z = 1 + (1 + X31) mark(z) -{ 2 }-> a__length(a__U11(mark(X111), X210)) :|: z = 1 + (1 + X111 + X210), X111 >= 0, X210 >= 0 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(X36)) :|: X36 >= 0, z = 1 + (1 + X36) mark(z) -{ 2 }-> a__length(1 + mark(X115) + X214) :|: z = 1 + (1 + X115 + X214), X214 >= 0, X115 >= 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) -{ 2 }-> a__and(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__and(a__take(mark(X1122), mark(X2111)), X2) :|: X2111 >= 0, X2 >= 0, z = 1 + (1 + X1122 + X2111) + X2, X1122 >= 0 mark(z) -{ 2 }-> a__and(a__length(mark(X328)), X2) :|: X328 >= 0, X2 >= 0, z = 1 + (1 + X328) + X2 mark(z) -{ 2 }-> a__and(a__isNatList(X332), X2) :|: z = 1 + (1 + X332) + X2, X332 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X333), X2) :|: X333 >= 0, z = 1 + (1 + X333) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X331), X2) :|: z = 1 + (1 + X331) + X2, X331 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X1123), X2112), X2) :|: X2112 >= 0, X1123 >= 0, X2 >= 0, z = 1 + (1 + X1123 + X2112) + X2 mark(z) -{ 2 }-> a__and(a__U31(mark(X1121), X2110, X330, X426), X2) :|: X1121 >= 0, X2110 >= 0, z = 1 + (1 + X1121 + X2110 + X330 + X426) + X2, X330 >= 0, X2 >= 0, X426 >= 0 mark(z) -{ 2 }-> a__and(a__U21(mark(X329)), X2) :|: X329 >= 0, z = 1 + (1 + X329) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X1120), X2109), X2) :|: X2109 >= 0, z = 1 + (1 + X1120 + X2109) + X2, X1120 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X334), X2) :|: z = 1 + (1 + X334) + X2, X334 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X1124) + X2113, X2) :|: z = 1 + (1 + X1124 + X2113) + X2, X2113 >= 0, X1124 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U31(a__zeros, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__take(mark(X123), mark(X222)), X2, X3, X4) :|: X222 >= 0, z = 1 + (1 + X123 + X222) + X2 + X3 + X4, X3 >= 0, X123 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__length(mark(X46)), X2, X3, X4) :|: z = 1 + (1 + X46) + X2 + X3 + X4, X3 >= 0, X46 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatList(X50), X2, X3, X4) :|: X50 >= 0, X3 >= 0, z = 1 + (1 + X50) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatIList(X51), X2, X3, X4) :|: X51 >= 0, z = 1 + (1 + X51) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNat(X49), X2, X3, X4) :|: z = 1 + (1 + X49) + X2 + X3 + X4, X49 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__and(mark(X124), X223), X2, X3, X4) :|: X223 >= 0, X124 >= 0, z = 1 + (1 + X124 + X223) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U31(mark(X122), X221, X310, X48), X2, X3, X4) :|: X48 >= 0, z = 1 + (1 + X122 + X221 + X310 + X48) + X2 + X3 + X4, X3 >= 0, X122 >= 0, X221 >= 0, X310 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U21(mark(X47)), X2, X3, X4) :|: X47 >= 0, z = 1 + (1 + X47) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U11(mark(X121), X220), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X121 + X220) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X121 >= 0, X220 >= 0 mark(z) -{ 2 }-> a__U31(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X52), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X52) + X2 + X3 + X4, X52 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X125) + X224, X2, X3, X4) :|: X224 >= 0, X125 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X125 + X224) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U21(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__U21(a__take(mark(X118), mark(X217))) :|: X118 >= 0, z = 1 + (1 + X118 + X217), X217 >= 0 mark(z) -{ 2 }-> a__U21(a__length(mark(X37))) :|: X37 >= 0, z = 1 + (1 + X37) mark(z) -{ 2 }-> a__U21(a__isNatList(X43)) :|: X43 >= 0, z = 1 + (1 + X43) mark(z) -{ 2 }-> a__U21(a__isNatIList(X44)) :|: z = 1 + (1 + X44), X44 >= 0 mark(z) -{ 2 }-> a__U21(a__isNat(X40)) :|: z = 1 + (1 + X40), X40 >= 0 mark(z) -{ 2 }-> a__U21(a__and(mark(X119), X218)) :|: z = 1 + (1 + X119 + X218), X119 >= 0, X218 >= 0 mark(z) -{ 2 }-> a__U21(a__U31(mark(X117), X216, X39, X42)) :|: z = 1 + (1 + X117 + X216 + X39 + X42), X216 >= 0, X117 >= 0, X39 >= 0, X42 >= 0 mark(z) -{ 2 }-> a__U21(a__U21(mark(X38))) :|: X38 >= 0, z = 1 + (1 + X38) mark(z) -{ 2 }-> a__U21(a__U11(mark(X116), X215)) :|: z = 1 + (1 + X116 + X215), X116 >= 0, X215 >= 0 mark(z) -{ 2 }-> a__U21(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__U21(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__U21(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__U21(1 + mark(X45)) :|: X45 >= 0, z = 1 + (1 + X45) mark(z) -{ 2 }-> a__U21(1 + mark(X120) + X219) :|: X120 >= 0, z = 1 + (1 + X120 + X219), X219 >= 0 mark(z) -{ 2 }-> a__U11(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U11(a__take(mark(X16), mark(X26)), X2) :|: X16 >= 0, X26 >= 0, z = 1 + (1 + X16 + X26) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__length(mark(X9)), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X19), X2) :|: X19 >= 0, z = 1 + (1 + X19) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X20), X2) :|: z = 1 + (1 + X20) + X2, X20 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X18), X2) :|: z = 1 + (1 + X18) + X2, X18 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X17), X27), X2) :|: X17 >= 0, X27 >= 0, z = 1 + (1 + X17 + X27) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U31(mark(X15), X25, X3'', X4''), X2) :|: X3'' >= 0, X2 >= 0, z = 1 + (1 + X15 + X25 + X3'' + X4'') + X2, X15 >= 0, X25 >= 0, X4'' >= 0 mark(z) -{ 2 }-> a__U11(a__U21(mark(X10)), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X14), X24), X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 2 }-> a__U11(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X29), X2) :|: z = 1 + (1 + X29) + X2, X29 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X110) + X28, X2) :|: z = 1 + (1 + X110 + X28) + X2, X110 >= 0, X28 >= 0, X2 >= 0 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (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__U21(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__U21(z) -{ 1 }-> 1 :|: z = 2 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X11), mark(X21))) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X'))) :|: z = 2, X' >= 0, z' = 1 + X' a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X6)) :|: z = 2, X6 >= 0, z' = 1 + X6 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X7)) :|: z = 2, X7 >= 0, z' = 1 + X7 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U31(mark(X1''), X2'', X3', X4')) :|: z = 2, z' = 1 + X1'' + X2'' + X3' + X4', X1'' >= 0, X3' >= 0, X4' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U21(mark(X''))) :|: z = 2, z' = 1 + X'', X'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__U11(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__U21(z) -{ 1 }-> 1 :|: z = 2 a__U21(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__U31(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z1 = N, z' = IL, M >= 0, IL >= 0, z'' = M, N >= 0 a__U31(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__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V13), 1 + V2) :|: V13 >= 0, V2 >= 0, z = 1 + (1 + V13) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V14), 1 + V2) :|: V14 >= 0, z = 1 + (1 + V14) + V2, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V15), 1 + V2'), 1 + N), 1 + V15 + V2') :|: V15 >= 0, z = 1 + N + (1 + V15 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V16), 1 + V2''), 1 + N), 1 + V16 + V2'') :|: V2'' >= 0, V16 >= 0, z = 1 + N + (1 + V16 + V2''), N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + N), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 2 }-> a__U31(a__and(a__isNatList(IL), 1 + (1 + M) + (1 + N)), IL, M, N) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(a__and(a__isNat(V18), 1 + V22), 1 + (1 + M) + (1 + N)), 1 + V18 + V22, M, N) :|: V18 >= 0, V22 >= 0, z = 1 + M, z' = 1 + N + (1 + V18 + V22), M >= 0, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(2, 1 + (1 + M) + (1 + N)), 3, M, N) :|: z = 1 + M, M >= 0, z' = 1 + N + 3, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(1 + IL, 1 + (1 + M) + (1 + N)), IL, M, N) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U21(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__U21(a__and(a__isNat(V17), 1 + V21)) :|: z' = 1 + V17 + V21, V21 >= 0, z = 0, V17 >= 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__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__take(mark(X113), mark(X212))) :|: X113 >= 0, X212 >= 0, z = 1 + (1 + X113 + X212) mark(z) -{ 2 }-> a__length(a__length(mark(X30))) :|: z = 1 + (1 + X30), X30 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X34)) :|: z = 1 + (1 + X34), X34 >= 0 mark(z) -{ 2 }-> a__length(a__isNatIList(X35)) :|: z = 1 + (1 + X35), X35 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X33)) :|: X33 >= 0, z = 1 + (1 + X33) mark(z) -{ 2 }-> a__length(a__and(mark(X114), X213)) :|: X114 >= 0, X213 >= 0, z = 1 + (1 + X114 + X213) mark(z) -{ 2 }-> a__length(a__U31(mark(X112), X211, X32, X41)) :|: X32 >= 0, z = 1 + (1 + X112 + X211 + X32 + X41), X112 >= 0, X211 >= 0, X41 >= 0 mark(z) -{ 2 }-> a__length(a__U21(mark(X31))) :|: X31 >= 0, z = 1 + (1 + X31) mark(z) -{ 2 }-> a__length(a__U11(mark(X111), X210)) :|: z = 1 + (1 + X111 + X210), X111 >= 0, X210 >= 0 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(X36)) :|: X36 >= 0, z = 1 + (1 + X36) mark(z) -{ 2 }-> a__length(1 + mark(X115) + X214) :|: z = 1 + (1 + X115 + X214), X214 >= 0, X115 >= 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) -{ 2 }-> a__and(a__take(mark(X1122), mark(X2111)), X2) :|: X2111 >= 0, X2 >= 0, z = 1 + (1 + X1122 + X2111) + X2, X1122 >= 0 mark(z) -{ 2 }-> a__and(a__length(mark(X328)), X2) :|: X328 >= 0, X2 >= 0, z = 1 + (1 + X328) + X2 mark(z) -{ 2 }-> a__and(a__isNatList(X332), X2) :|: z = 1 + (1 + X332) + X2, X332 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X333), X2) :|: X333 >= 0, z = 1 + (1 + X333) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X331), X2) :|: z = 1 + (1 + X331) + X2, X331 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X1123), X2112), X2) :|: X2112 >= 0, X1123 >= 0, X2 >= 0, z = 1 + (1 + X1123 + X2112) + X2 mark(z) -{ 2 }-> a__and(a__U31(mark(X1121), X2110, X330, X426), X2) :|: X1121 >= 0, X2110 >= 0, z = 1 + (1 + X1121 + X2110 + X330 + X426) + X2, X330 >= 0, X2 >= 0, X426 >= 0 mark(z) -{ 2 }-> a__and(a__U21(mark(X329)), X2) :|: X329 >= 0, z = 1 + (1 + X329) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X1120), X2109), X2) :|: X2109 >= 0, z = 1 + (1 + X1120 + X2109) + X2, X1120 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__and(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X334), X2) :|: z = 1 + (1 + X334) + X2, X334 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X1124) + X2113, X2) :|: z = 1 + (1 + X1124 + X2113) + X2, X2113 >= 0, X1124 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U31(a__take(mark(X123), mark(X222)), X2, X3, X4) :|: X222 >= 0, z = 1 + (1 + X123 + X222) + X2 + X3 + X4, X3 >= 0, X123 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__length(mark(X46)), X2, X3, X4) :|: z = 1 + (1 + X46) + X2 + X3 + X4, X3 >= 0, X46 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatList(X50), X2, X3, X4) :|: X50 >= 0, X3 >= 0, z = 1 + (1 + X50) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatIList(X51), X2, X3, X4) :|: X51 >= 0, z = 1 + (1 + X51) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNat(X49), X2, X3, X4) :|: z = 1 + (1 + X49) + X2 + X3 + X4, X49 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__and(mark(X124), X223), X2, X3, X4) :|: X223 >= 0, X124 >= 0, z = 1 + (1 + X124 + X223) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U31(mark(X122), X221, X310, X48), X2, X3, X4) :|: X48 >= 0, z = 1 + (1 + X122 + X221 + X310 + X48) + X2 + X3 + X4, X3 >= 0, X122 >= 0, X221 >= 0, X310 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U21(mark(X47)), X2, X3, X4) :|: X47 >= 0, z = 1 + (1 + X47) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U11(mark(X121), X220), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X121 + X220) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X121 >= 0, X220 >= 0 mark(z) -{ 3 }-> a__U31(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X52), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X52) + X2 + X3 + X4, X52 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X125) + X224, X2, X3, X4) :|: X224 >= 0, X125 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X125 + X224) + X2 + X3 + X4 mark(z) -{ 3 }-> a__U31(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U21(a__take(mark(X118), mark(X217))) :|: X118 >= 0, z = 1 + (1 + X118 + X217), X217 >= 0 mark(z) -{ 2 }-> a__U21(a__length(mark(X37))) :|: X37 >= 0, z = 1 + (1 + X37) mark(z) -{ 2 }-> a__U21(a__isNatList(X43)) :|: X43 >= 0, z = 1 + (1 + X43) mark(z) -{ 2 }-> a__U21(a__isNatIList(X44)) :|: z = 1 + (1 + X44), X44 >= 0 mark(z) -{ 2 }-> a__U21(a__isNat(X40)) :|: z = 1 + (1 + X40), X40 >= 0 mark(z) -{ 2 }-> a__U21(a__and(mark(X119), X218)) :|: z = 1 + (1 + X119 + X218), X119 >= 0, X218 >= 0 mark(z) -{ 2 }-> a__U21(a__U31(mark(X117), X216, X39, X42)) :|: z = 1 + (1 + X117 + X216 + X39 + X42), X216 >= 0, X117 >= 0, X39 >= 0, X42 >= 0 mark(z) -{ 2 }-> a__U21(a__U21(mark(X38))) :|: X38 >= 0, z = 1 + (1 + X38) mark(z) -{ 2 }-> a__U21(a__U11(mark(X116), X215)) :|: z = 1 + (1 + X116 + X215), X116 >= 0, X215 >= 0 mark(z) -{ 2 }-> a__U21(1 + mark(X45)) :|: X45 >= 0, z = 1 + (1 + X45) mark(z) -{ 2 }-> a__U21(1 + mark(X120) + X219) :|: X120 >= 0, z = 1 + (1 + X120 + X219), X219 >= 0 mark(z) -{ 2 }-> a__U11(a__take(mark(X16), mark(X26)), X2) :|: X16 >= 0, X26 >= 0, z = 1 + (1 + X16 + X26) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__length(mark(X9)), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X19), X2) :|: X19 >= 0, z = 1 + (1 + X19) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X20), X2) :|: z = 1 + (1 + X20) + X2, X20 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X18), X2) :|: z = 1 + (1 + X18) + X2, X18 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X17), X27), X2) :|: X17 >= 0, X27 >= 0, z = 1 + (1 + X17 + X27) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U31(mark(X15), X25, X3'', X4''), X2) :|: X3'' >= 0, X2 >= 0, z = 1 + (1 + X15 + X25 + X3'' + X4'') + X2, X15 >= 0, X25 >= 0, X4'' >= 0 mark(z) -{ 2 }-> a__U11(a__U21(mark(X10)), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X14), X24), X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 3 }-> a__U11(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U11(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X29), X2) :|: z = 1 + (1 + X29) + X2, X29 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X110) + X28, X2) :|: z = 1 + (1 + X110 + X28) + X2, X110 >= 0, X28 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__U11(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + 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 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = 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__U11(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X11), mark(X21))) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U31(mark(X1''), X2'', X3', X4')) :|: z = 2, z' = 1 + X1'' + X2'' + X3' + X4', X1'' >= 0, X3' >= 0, X4' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U21(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__U11(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__U21(z) -{ 1 }-> 1 :|: z = 2 a__U21(z) -{ 1 }-> 1 + z :|: z >= 0 a__U31(z, z', z'', z1) -{ 1 }-> 1 + mark(z1) + (1 + z'' + z') :|: z = 2, z'' >= 0, z' >= 0, z1 >= 0 a__U31(z, z', z'', z1) -{ 1 }-> 1 + z + z' + z'' + z1 :|: z >= 0, z'' >= 0, z' >= 0, z1 >= 0 a__and(z, z') -{ 1 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__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) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V13), 1 + V2) :|: V13 >= 0, V2 >= 0, z = 1 + (1 + V13) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V14), 1 + V2) :|: V14 >= 0, z = 1 + (1 + V14) + V2, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + z :|: z >= 0 a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V15), 1 + V2'), 1 + N), 1 + V15 + V2') :|: V15 >= 0, z = 1 + N + (1 + V15 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V16), 1 + V2''), 1 + N), 1 + V16 + V2'') :|: V2'' >= 0, V16 >= 0, z = 1 + N + (1 + V16 + V2''), N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + (z - 2)), 1) :|: z - 2 >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + z :|: z >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(a__isNatList(IL), 1 + (1 + (z - 1)) + (1 + N)), IL, z - 1, N) :|: z - 1 >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(a__and(a__isNat(V18), 1 + V22), 1 + (1 + (z - 1)) + (1 + N)), 1 + V18 + V22, z - 1, N) :|: V18 >= 0, V22 >= 0, z' = 1 + N + (1 + V18 + V22), z - 1 >= 0, N >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(2, 1 + (1 + (z - 1)) + (1 + (z' - 4))), 3, z - 1, z' - 4) :|: z - 1 >= 0, z' - 4 >= 0 a__take(z, z') -{ 2 }-> a__U31(a__and(1 + IL, 1 + (1 + (z - 1)) + (1 + N)), IL, z - 1, N) :|: z - 1 >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__U21(a__isNatList(z')) :|: z = 0, z' >= 0 a__take(z, z') -{ 2 }-> a__U21(a__and(a__isNat(V17), 1 + V21)) :|: z' = 1 + V17 + V21, V21 >= 0, z = 0, V17 >= 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__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__take(mark(X113), mark(X212))) :|: X113 >= 0, X212 >= 0, z = 1 + (1 + X113 + X212) 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(X114), X213)) :|: X114 >= 0, X213 >= 0, z = 1 + (1 + X114 + X213) mark(z) -{ 2 }-> a__length(a__U31(mark(X112), X211, X32, X41)) :|: X32 >= 0, z = 1 + (1 + X112 + X211 + X32 + X41), X112 >= 0, X211 >= 0, X41 >= 0 mark(z) -{ 2 }-> a__length(a__U21(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__U11(mark(X111), X210)) :|: z = 1 + (1 + X111 + X210), X111 >= 0, X210 >= 0 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(X115) + X214) :|: z = 1 + (1 + X115 + X214), X214 >= 0, X115 >= 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) -{ 2 }-> a__and(a__take(mark(X1122), mark(X2111)), X2) :|: X2111 >= 0, X2 >= 0, z = 1 + (1 + X1122 + X2111) + X2, X1122 >= 0 mark(z) -{ 2 }-> a__and(a__length(mark(X328)), X2) :|: X328 >= 0, X2 >= 0, z = 1 + (1 + X328) + X2 mark(z) -{ 2 }-> a__and(a__isNatList(X332), X2) :|: z = 1 + (1 + X332) + X2, X332 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X333), X2) :|: X333 >= 0, z = 1 + (1 + X333) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X331), X2) :|: z = 1 + (1 + X331) + X2, X331 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X1123), X2112), X2) :|: X2112 >= 0, X1123 >= 0, X2 >= 0, z = 1 + (1 + X1123 + X2112) + X2 mark(z) -{ 2 }-> a__and(a__U31(mark(X1121), X2110, X330, X426), X2) :|: X1121 >= 0, X2110 >= 0, z = 1 + (1 + X1121 + X2110 + X330 + X426) + X2, X330 >= 0, X2 >= 0, X426 >= 0 mark(z) -{ 2 }-> a__and(a__U21(mark(X329)), X2) :|: X329 >= 0, z = 1 + (1 + X329) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X1120), X2109), X2) :|: X2109 >= 0, z = 1 + (1 + X1120 + X2109) + X2, X1120 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__and(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__and(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__and(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X334), X2) :|: z = 1 + (1 + X334) + X2, X334 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X1124) + X2113, X2) :|: z = 1 + (1 + X1124 + X2113) + X2, X2113 >= 0, X1124 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__U31(a__take(mark(X123), mark(X222)), X2, X3, X4) :|: X222 >= 0, z = 1 + (1 + X123 + X222) + X2 + X3 + X4, X3 >= 0, X123 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__length(mark(X46)), X2, X3, X4) :|: z = 1 + (1 + X46) + X2 + X3 + X4, X3 >= 0, X46 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatList(X50), X2, X3, X4) :|: X50 >= 0, X3 >= 0, z = 1 + (1 + X50) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNatIList(X51), X2, X3, X4) :|: X51 >= 0, z = 1 + (1 + X51) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__isNat(X49), X2, X3, X4) :|: z = 1 + (1 + X49) + X2 + X3 + X4, X49 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__and(mark(X124), X223), X2, X3, X4) :|: X223 >= 0, X124 >= 0, z = 1 + (1 + X124 + X223) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U31(mark(X122), X221, X310, X48), X2, X3, X4) :|: X48 >= 0, z = 1 + (1 + X122 + X221 + X310 + X48) + X2 + X3 + X4, X3 >= 0, X122 >= 0, X221 >= 0, X310 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U21(mark(X47)), X2, X3, X4) :|: X47 >= 0, z = 1 + (1 + X47) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(a__U11(mark(X121), X220), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X121 + X220) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X121 >= 0, X220 >= 0 mark(z) -{ 3 }-> a__U31(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U31(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X52), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X52) + X2 + X3 + X4, X52 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U31(1 + mark(X125) + X224, X2, X3, X4) :|: X224 >= 0, X125 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X125 + X224) + X2 + X3 + X4 mark(z) -{ 3 }-> a__U31(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U21(a__take(mark(X118), mark(X217))) :|: X118 >= 0, z = 1 + (1 + X118 + X217), X217 >= 0 mark(z) -{ 2 }-> a__U21(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(a__and(mark(X119), X218)) :|: z = 1 + (1 + X119 + X218), X119 >= 0, X218 >= 0 mark(z) -{ 2 }-> a__U21(a__U31(mark(X117), X216, X39, X42)) :|: z = 1 + (1 + X117 + X216 + X39 + X42), X216 >= 0, X117 >= 0, X39 >= 0, X42 >= 0 mark(z) -{ 2 }-> a__U21(a__U21(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(a__U11(mark(X116), X215)) :|: z = 1 + (1 + X116 + X215), X116 >= 0, X215 >= 0 mark(z) -{ 2 }-> a__U21(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U21(1 + mark(X120) + X219) :|: X120 >= 0, z = 1 + (1 + X120 + X219), X219 >= 0 mark(z) -{ 2 }-> a__U11(a__take(mark(X16), mark(X26)), X2) :|: X16 >= 0, X26 >= 0, z = 1 + (1 + X16 + X26) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__length(mark(X9)), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X19), X2) :|: X19 >= 0, z = 1 + (1 + X19) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X20), X2) :|: z = 1 + (1 + X20) + X2, X20 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X18), X2) :|: z = 1 + (1 + X18) + X2, X18 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X17), X27), X2) :|: X17 >= 0, X27 >= 0, z = 1 + (1 + X17 + X27) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U31(mark(X15), X25, X3'', X4''), X2) :|: X3'' >= 0, X2 >= 0, z = 1 + (1 + X15 + X25 + X3'' + X4'') + X2, X15 >= 0, X25 >= 0, X4'' >= 0 mark(z) -{ 2 }-> a__U11(a__U21(mark(X10)), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X14), X24), X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 3 }-> a__U11(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__U11(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__U11(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U11(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X29), X2) :|: z = 1 + (1 + X29) + X2, X29 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X110) + X28, X2) :|: z = 1 + (1 + X110 + X28) + X2, X110 >= 0, X28 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__U11(1 + 0 + 3, z - 4) :|: z - 4 >= 0 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 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = 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__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__U21(tt) -> nil [1] a__U31(tt, IL, M, N) -> cons(mark(N), take(M, IL)) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__isNatList(take(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] a__take(0, IL) -> a__U21(a__isNatIList(IL)) [1] a__take(s(M), cons(N, IL)) -> a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(U21(X)) -> a__U21(mark(X)) [1] mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__U21(X) -> U21(X) [1] a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4) [1] a__take(X1, X2) -> take(X1, X2) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 cons :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 0 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 zeros :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 tt :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 s :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 mark :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 nil :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 length :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatIList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNatList :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 isNat :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 a__take :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 and :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U11 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U21 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 U31 :: 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 -> 0:zeros:cons:tt:s:nil:take:length:isNatIList:isNatList:isNat:and:U11:U21:U31 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: 0 => 0 zeros => 3 tt => 2 nil => 1 ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 1 }-> 1 + a__length(mark(L)) :|: z = 2, L >= 0, z' = L a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__U21(z) -{ 1 }-> 1 :|: z = 2 a__U21(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__U31(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z1 = N, z' = IL, M >= 0, IL >= 0, z'' = M, N >= 0 a__U31(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__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 1 }-> a__and(a__isNat(V1), 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 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(V1), 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 1 }-> a__U11(a__and(a__isNatList(L), 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__U31(a__and(a__isNatIList(IL), 1 + (1 + M) + (1 + N)), IL, M, N) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 1 }-> a__U21(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__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 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), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__U31(mark(X1), X2, X3, X4) :|: X1 >= 0, z = 1 + X1 + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> a__U21(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__U11(mark(X1), 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__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__U31(z0, z1, z2, z3) -> c7 A__AND(tt, z0) -> c8(MARK(z0)) A__AND(z0, z1) -> c9 A__ISNAT(0) -> c10 A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNAT(z0) -> c13 A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c15 A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c17 A__ISNATLIST(nil) -> c18 A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c21 A__LENGTH(nil) -> c22 A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c24 A__TAKE(0, z0) -> c25(A__U21(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c27 MARK(zeros) -> c28(A__ZEROS) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U21(z0)) -> c31(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(0) -> c40 MARK(tt) -> c41 MARK(s(z0)) -> c42(MARK(z0)) MARK(nil) -> c43 S tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__U31(z0, z1, z2, z3) -> c7 A__AND(tt, z0) -> c8(MARK(z0)) A__AND(z0, z1) -> c9 A__ISNAT(0) -> c10 A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNAT(z0) -> c13 A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c15 A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c17 A__ISNATLIST(nil) -> c18 A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c21 A__LENGTH(nil) -> c22 A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c24 A__TAKE(0, z0) -> c25(A__U21(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c27 MARK(zeros) -> c28(A__ZEROS) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U21(z0)) -> c31(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(0) -> c40 MARK(tt) -> c41 MARK(s(z0)) -> c42(MARK(z0)) MARK(nil) -> c43 K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__ZEROS, A__U11_2, A__U21_1, A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1 Compound Symbols: c, c1, c2_2, c3, c4, c5, c6_1, c7, c8_1, c9, c10, c11_1, c12_1, c13, c14_1, c15, c16_2, c17, c18, c19_2, c20_2, c21, c22, c23_3, c24, c25_2, c26_3, c27, c28_1, c29_2, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c40, c41, c42_1, c43 ---------------------------------------- (25) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 20 trailing nodes: A__U31(z0, z1, z2, z3) -> c7 A__U21(tt) -> c4 A__ISNATILIST(zeros) -> c15 A__AND(z0, z1) -> c9 A__U21(z0) -> c5 A__U11(z0, z1) -> c3 A__ISNATLIST(z0) -> c21 A__ISNATLIST(nil) -> c18 A__LENGTH(nil) -> c22 MARK(nil) -> c43 MARK(0) -> c40 A__LENGTH(z0) -> c24 A__ISNAT(z0) -> c13 MARK(tt) -> c41 A__ISNAT(0) -> c10 A__ZEROS -> c1 MARK(zeros) -> c28(A__ZEROS) A__TAKE(z0, z1) -> c27 A__ZEROS -> c A__ISNATILIST(z0) -> c17 ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(0, z0) -> c25(A__U21(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U21(z0)) -> c31(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) S tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(0, z0) -> c25(A__U21(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U21(z0)) -> c31(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_2, A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1 Compound Symbols: c2_2, c6_1, c8_1, c11_1, c12_1, c14_1, c16_2, c19_2, c20_2, c23_3, c25_2, c26_3, c29_2, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1 ---------------------------------------- (27) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) S tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_2, A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1 Compound Symbols: c2_2, c6_1, c8_1, c11_1, c12_1, c14_1, c16_2, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1 ---------------------------------------- (29) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) by A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c16_2, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2 ---------------------------------------- (31) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c16_2, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2 ---------------------------------------- (33) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c16_2, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1 ---------------------------------------- (35) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) by A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2 ---------------------------------------- (37) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c19_2, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1 ---------------------------------------- (39) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) by A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2 ---------------------------------------- (41) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c20_2, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1 ---------------------------------------- (43) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) by A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(z0, x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(z0, x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(z0, x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2, A__ISNATLIST_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2 ---------------------------------------- (45) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__LENGTH_1, A__TAKE_2, MARK_1, A__U11_2, A__ISNATLIST_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c23_3, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1 ---------------------------------------- (47) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) by A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__TAKE_2, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3 ---------------------------------------- (49) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__TAKE_2, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c26_3, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1 ---------------------------------------- (51) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c26(A__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1), A__AND(a__isNatIList(z2), and(isNat(z0), isNat(z1))), A__ISNATILIST(z2)) by A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3 ---------------------------------------- (53) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c29_2, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2 ---------------------------------------- (55) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) by MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c29(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c29(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c29(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c29(A__U11(nil, x1), MARK(nil)) ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c29(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c29(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c29(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c29(A__U11(nil, x1), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c29(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c29(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c29(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c29(A__U11(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2 ---------------------------------------- (57) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U11(0, x1)) -> c29(A__U11(0, x1), MARK(0)) MARK(U11(nil, x1)) -> c29(A__U11(nil, x1), MARK(nil)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c29(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c29(A__U11(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c29(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c29(A__U11(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2 ---------------------------------------- (59) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c30_2, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1 ---------------------------------------- (61) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) by MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c30(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c30(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c30(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2 ---------------------------------------- (63) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c30(A__LENGTH(s(mark(z0))), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c30(A__LENGTH(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2 ---------------------------------------- (65) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c32_2, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1 ---------------------------------------- (67) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) by MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3), MARK(zeros)) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(A__U31(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U31(0, x1, x2, x3)) -> c32(A__U31(0, x1, x2, x3), MARK(0)) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3), MARK(tt)) MARK(U31(s(z0), x1, x2, x3)) -> c32(A__U31(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U31(nil, x1, x2, x3)) -> c32(A__U31(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3), MARK(zeros)) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(A__U31(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U31(0, x1, x2, x3)) -> c32(A__U31(0, x1, x2, x3), MARK(0)) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3), MARK(tt)) MARK(U31(s(z0), x1, x2, x3)) -> c32(A__U31(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U31(nil, x1, x2, x3)) -> c32(A__U31(nil, x1, x2, x3), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3), MARK(zeros)) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(A__U31(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U31(0, x1, x2, x3)) -> c32(A__U31(0, x1, x2, x3), MARK(0)) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3), MARK(tt)) MARK(U31(s(z0), x1, x2, x3)) -> c32(A__U31(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U31(nil, x1, x2, x3)) -> c32(A__U31(nil, x1, x2, x3), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2 ---------------------------------------- (69) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U31(0, x1, x2, x3)) -> c32(A__U31(0, x1, x2, x3), MARK(0)) MARK(U31(nil, x1, x2, x3)) -> c32(A__U31(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3), MARK(zeros)) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(A__U31(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3), MARK(tt)) MARK(U31(s(z0), x1, x2, x3)) -> c32(A__U31(s(mark(z0)), x1, x2, x3), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3), MARK(zeros)) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(A__U31(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3), MARK(tt)) MARK(U31(s(z0), x1, x2, x3)) -> c32(A__U31(s(mark(z0)), x1, x2, x3), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c33_2, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) by MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(cons(z0, z1), x1)) -> c33(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(tt, x1)) -> c33(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(nil, x1)) -> c33(A__TAKE(nil, mark(x1)), MARK(nil)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(cons(z0, z1), x1)) -> c33(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(tt, x1)) -> c33(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(nil, x1)) -> c33(A__TAKE(nil, mark(x1)), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(cons(z0, z1), x1)) -> c33(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(tt, x1)) -> c33(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(nil, x1)) -> c33(A__TAKE(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2 ---------------------------------------- (75) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(take(nil, x1)) -> c33(A__TAKE(nil, mark(x1)), MARK(nil)) MARK(take(tt, x1)) -> c33(A__TAKE(tt, mark(x1)), MARK(tt)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(cons(z0, z1), x1)) -> c33(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(cons(z0, z1), x1)) -> c33(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2 ---------------------------------------- (77) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c34_2, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) by MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c34(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c34(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c34(A__TAKE(nil, mark(x1)), MARK(x1)) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c34(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c34(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c34(A__TAKE(nil, mark(x1)), MARK(x1)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c34(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c34(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c34(A__TAKE(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2 ---------------------------------------- (81) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c35_2, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1 ---------------------------------------- (83) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) by MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c35(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c35(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c35(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c35(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c35(A__AND(nil, x1), MARK(nil)) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c35(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c35(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c35(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c35(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c35(A__AND(nil, x1), MARK(nil)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c35(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c35(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c35(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c35(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c35(A__AND(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2 ---------------------------------------- (85) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(nil, x1)) -> c35(A__AND(nil, x1), MARK(nil)) MARK(and(0, x1)) -> c35(A__AND(0, x1), MARK(0)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c35(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c35(A__AND(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c35(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c35(A__AND(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) by A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) by A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U21(z0)) -> c2(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) by A__U11(tt, U21(x0)) -> c2(A__LENGTH(U21(mark(x0))), MARK(U21(x0))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(x0)) -> c2(A__LENGTH(U21(mark(x0))), MARK(U21(x0))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(x0)) -> c2(A__LENGTH(U21(mark(x0))), MARK(U21(x0))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U31(z0, z1, z2, z3)) -> c2(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) by A__U11(tt, U31(x0, z1, z2, z3)) -> c2(A__LENGTH(U31(mark(x0), z1, z2, z3)), MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3)), MARK(U31(0, x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3)), MARK(U31(nil, x1, x2, x3))) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(A__LENGTH(U31(mark(x0), z1, z2, z3)), MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3)), MARK(U31(0, x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3)), MARK(U31(nil, x1, x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(A__LENGTH(U31(mark(x0), z1, z2, z3)), MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3)), MARK(U31(0, x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3)), MARK(U31(nil, x1, x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, take(z0, z1)) -> c2(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) by A__U11(tt, take(x0, x1)) -> c2(A__LENGTH(take(mark(x0), mark(x1))), MARK(take(x0, x1))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, x1)) -> c2(A__LENGTH(take(mark(x0), mark(x1))), MARK(take(x0, x1))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, x1)) -> c2(A__LENGTH(take(mark(x0), mark(x1))), MARK(take(x0, x1))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) by A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (111) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) by A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) by A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (119) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) by A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (125) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) by A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (127) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) by A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (131) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_2, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) by A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2 ---------------------------------------- (135) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2 ---------------------------------------- (137) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) by A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2 ---------------------------------------- (139) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_2, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2 ---------------------------------------- (141) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) by A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2 ---------------------------------------- (143) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2 ---------------------------------------- (145) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) by A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2 ---------------------------------------- (147) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_2, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2 ---------------------------------------- (149) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) by A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (151) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (153) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) by A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (155) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (157) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), take(z0, z1)), A__AND(a__isNatList(take(z0, z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) by A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(and(a__and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (159) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_3, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2 ---------------------------------------- (161) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, z0)) -> c23(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) by A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3 ---------------------------------------- (163) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3 ---------------------------------------- (165) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) by A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c23(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3 ---------------------------------------- (167) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_2, c23_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3 ---------------------------------------- (169) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, nil)) -> c23(A__AND(a__isNatList(nil), isNat(x0))) by A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(isNatList(nil), isNat(x0))) ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(isNatList(nil), isNat(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__LENGTH(cons(x0, nil)) -> c23(A__AND(isNatList(nil), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c23_2, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1 ---------------------------------------- (171) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__LENGTH(cons(x0, nil)) -> c23(A__AND(isNatList(nil), isNat(x0))) ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (173) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(a__isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) by A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(a__isNatList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (175) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (177) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) by A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(and(tt, and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (179) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (181) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) by A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(and(a__and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(and(a__and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(and(a__and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (183) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_3, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2 ---------------------------------------- (185) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatIList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) by A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__U31(and(isNatIList(x2), and(isNat(x0), isNat(x1))), x2, x0, x1), A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3 ---------------------------------------- (187) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3 ---------------------------------------- (189) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) by A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3 ---------------------------------------- (191) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (193) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(U11(z0, z1), x1)) -> c29(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) by MARK(U11(U11(x0, z1), x2)) -> c29(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(x0, z1), x2)) -> c29(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(x0, z1), x2)) -> c29(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (195) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (197) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(length(z0), x1)) -> c29(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) by MARK(U11(length(x0), x1)) -> c29(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1), MARK(length(nil))) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(x0), x1)) -> c29(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1), MARK(length(nil))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(x0), x1)) -> c29(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (199) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (201) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(U21(z0), x1)) -> c29(A__U11(a__U21(mark(z0)), x1), MARK(U21(z0))) by MARK(U11(U21(x0), x1)) -> c29(A__U11(U21(mark(x0)), x1), MARK(U21(x0))) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(x0), x1)) -> c29(A__U11(U21(mark(x0)), x1), MARK(U21(x0))) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(x0), x1)) -> c29(A__U11(U21(mark(x0)), x1), MARK(U21(x0))) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (203) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (205) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(U31(z0, z1, z2, z3), x1)) -> c29(A__U11(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) by MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(A__U11(U31(mark(x0), z1, z2, z3), x4), MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4), MARK(U31(0, x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4), MARK(U31(nil, x1, x2, x3))) ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(A__U11(U31(mark(x0), z1, z2, z3), x4), MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4), MARK(U31(0, x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4), MARK(U31(nil, x1, x2, x3))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(A__U11(U31(mark(x0), z1, z2, z3), x4), MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4), MARK(U31(0, x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4), MARK(U31(nil, x1, x2, x3))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (207) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (209) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(take(z0, z1), x1)) -> c29(A__U11(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) by MARK(U11(take(x0, x1), x2)) -> c29(A__U11(take(mark(x0), mark(x1)), x2), MARK(take(x0, x1))) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, x1), x2)) -> c29(A__U11(take(mark(x0), mark(x1)), x2), MARK(take(x0, x1))) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, x1), x2)) -> c29(A__U11(take(mark(x0), mark(x1)), x2), MARK(take(x0, x1))) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (211) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (213) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(and(z0, z1), x1)) -> c29(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) by MARK(U11(and(x0, z1), x2)) -> c29(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c29(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c29(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(U21(z0), x1), x2)) -> c29(A__U11(a__and(a__U21(mark(z0)), x1), x2), MARK(and(U21(z0), x1))) MARK(U11(and(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__and(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(and(U31(z0, z1, z2, z3), x1))) MARK(U11(and(take(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__take(mark(z0), mark(z1)), x1), x2), MARK(and(take(z0, z1), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c29(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c29(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c29(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c29(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c29(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c29(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) MARK(U11(and(x0, z1), x2)) -> c29(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c29(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c29(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(U21(z0), x1), x2)) -> c29(A__U11(a__and(a__U21(mark(z0)), x1), x2), MARK(and(U21(z0), x1))) MARK(U11(and(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__and(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(and(U31(z0, z1, z2, z3), x1))) MARK(U11(and(take(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__take(mark(z0), mark(z1)), x1), x2), MARK(and(take(z0, z1), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c29(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c29(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c29(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c29(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c29(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c29(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) MARK(U11(and(x0, z1), x2)) -> c29(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c29(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c29(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(U21(z0), x1), x2)) -> c29(A__U11(a__and(a__U21(mark(z0)), x1), x2), MARK(and(U21(z0), x1))) MARK(U11(and(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__and(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(and(U31(z0, z1, z2, z3), x1))) MARK(U11(and(take(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__take(mark(z0), mark(z1)), x1), x2), MARK(and(take(z0, z1), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c29(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c29(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c29(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c29(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c29(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c29(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1 ---------------------------------------- (215) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__U21(tt) -> nil a__U21(z0) -> U21(z0) a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) a__take(0, z0) -> a__U21(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) a__take(z0, z1) -> take(z0, z1) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c26(A__AND(a__isNatIList(x2), and(isNat(x0), isNat(x1))), A__ISNATILIST(x2)) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, x1)) -> c23(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) MARK(U11(and(zeros, x1), x2)) -> c29(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c29(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(U21(z0), x1), x2)) -> c29(A__U11(a__and(a__U21(mark(z0)), x1), x2), MARK(and(U21(z0), x1))) MARK(U11(and(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__and(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(and(U31(z0, z1, z2, z3), x1))) MARK(U11(and(take(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__take(mark(z0), mark(z1)), x1), x2), MARK(and(take(z0, z1), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c29(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c29(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c29(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c29(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c29(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c29(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c29(A__U11(a__and(nil, x1), x2)) S tuples: A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) A__AND(tt, z0) -> c8(MARK(z0)) A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c36(A__ISNAT(z0)) MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c39(MARK(z0)) MARK(s(z0)) -> c42(MARK(z0)) A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) MARK(U21(z0)) -> c31(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c16(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c16(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c19(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c19(A__ISNAT(z0)) A__ISNATLIST(take(0, x1)) -> c20(A__AND(tt, isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c20(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c29(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c29(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c29(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c29(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c29(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c29(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c29(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c30(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c30(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(U21(z0))) -> c30(A__LENGTH(a__U21(mark(z0))), MARK(U21(z0))) MARK(length(U31(z0, z1, z2, z3))) -> c30(A__LENGTH(a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(length(take(z0, z1))) -> c30(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(and(z0, z1))) -> c30(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c30(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c30(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c30(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c30(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c30(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c30(MARK(s(z0))) MARK(U31(U11(z0, z1), x1, x2, x3)) -> c32(A__U31(a__U11(mark(z0), z1), x1, x2, x3), MARK(U11(z0, z1))) MARK(U31(length(z0), x1, x2, x3)) -> c32(A__U31(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(U31(U21(z0), x1, x2, x3)) -> c32(A__U31(a__U21(mark(z0)), x1, x2, x3), MARK(U21(z0))) MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c32(A__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U31(z0, z1, z2, z3))) MARK(U31(take(z0, z1), x1, x2, x3)) -> c32(A__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U31(and(z0, z1), x1, x2, x3)) -> c32(A__U31(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U31(isNat(z0), x1, x2, x3)) -> c32(A__U31(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(U31(isNatList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(U31(isNatIList(z0), x1, x2, x3)) -> c32(A__U31(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(U31(zeros, x1, x2, x3)) -> c32(A__U31(a__zeros, x1, x2, x3)) MARK(U31(cons(z0, z1), x1, x2, x3)) -> c32(MARK(cons(z0, z1))) MARK(U31(tt, x1, x2, x3)) -> c32(A__U31(tt, x1, x2, x3)) MARK(U31(s(z0), x1, x2, x3)) -> c32(MARK(s(z0))) MARK(take(x0, zeros)) -> c33(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, U11(z0, z1))) -> c33(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(x0)) MARK(take(x0, length(z0))) -> c33(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, U21(z0))) -> c33(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(x0)) MARK(take(x0, U31(z0, z1, z2, z3))) -> c33(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c33(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, and(z0, z1))) -> c33(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c33(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c33(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c33(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c33(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, 0)) -> c33(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, tt)) -> c33(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, s(z0))) -> c33(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, nil)) -> c33(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(U11(z0, z1), x1)) -> c33(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(U11(z0, z1))) MARK(take(length(z0), x1)) -> c33(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(U21(z0), x1)) -> c33(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(U21(z0))) MARK(take(U31(z0, z1, z2, z3), x1)) -> c33(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(U31(z0, z1, z2, z3))) MARK(take(take(z0, z1), x1)) -> c33(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(and(z0, z1), x1)) -> c33(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(take(isNat(z0), x1)) -> c33(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(isNatList(z0), x1)) -> c33(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNatIList(z0), x1)) -> c33(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(s(z0), x1)) -> c33(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c33(A__TAKE(a__zeros, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(take(0, x1)) -> c33(A__TAKE(0, mark(x1))) MARK(take(x0, U11(z0, z1))) -> c34(A__TAKE(mark(x0), a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(take(x0, length(z0))) -> c34(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, U21(z0))) -> c34(A__TAKE(mark(x0), a__U21(mark(z0))), MARK(U21(z0))) MARK(take(x0, U31(z0, z1, z2, z3))) -> c34(A__TAKE(mark(x0), a__U31(mark(z0), z1, z2, z3)), MARK(U31(z0, z1, z2, z3))) MARK(take(x0, take(z0, z1))) -> c34(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, and(z0, z1))) -> c34(A__TAKE(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(take(x0, isNat(z0))) -> c34(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, isNatList(z0))) -> c34(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNatIList(z0))) -> c34(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, cons(z0, z1))) -> c34(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, s(z0))) -> c34(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(zeros, x1)) -> c34(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(U11(z0, z1), x1)) -> c34(A__TAKE(a__U11(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c34(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U21(z0), x1)) -> c34(A__TAKE(a__U21(mark(z0)), mark(x1)), MARK(x1)) MARK(take(U31(z0, z1, z2, z3), x1)) -> c34(A__TAKE(a__U31(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c34(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(and(z0, z1), x1)) -> c34(A__TAKE(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c34(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c34(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c34(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c34(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c34(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c34(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, 0)) -> c34(A__TAKE(mark(x0), 0)) MARK(take(x0, tt)) -> c34(A__TAKE(mark(x0), tt)) MARK(take(x0, nil)) -> c34(A__TAKE(mark(x0), nil)) MARK(take(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(take(tt, x1)) -> c34(MARK(x1)) MARK(take(nil, x1)) -> c34(MARK(x1)) MARK(and(U11(z0, z1), x1)) -> c35(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c35(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(U21(z0), x1)) -> c35(A__AND(a__U21(mark(z0)), x1), MARK(U21(z0))) MARK(and(U31(z0, z1, z2, z3), x1)) -> c35(A__AND(a__U31(mark(z0), z1, z2, z3), x1), MARK(U31(z0, z1, z2, z3))) MARK(and(take(z0, z1), x1)) -> c35(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(and(z0, z1), x1)) -> c35(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c35(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c35(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c35(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c35(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c35(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c35(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c35(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(U21(z0), x1)) -> c2(A__LENGTH(a__U11(a__U21(mark(z0)), x1)), MARK(U11(U21(z0), x1))) A__U11(tt, U11(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__U11(a__U31(mark(z0), z1, z2, z3), x1)), MARK(U11(U31(z0, z1, z2, z3), x1))) A__U11(tt, U11(take(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__take(mark(z0), mark(z1)), x1)), MARK(U11(take(z0, z1), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(U21(z0))) -> c2(A__LENGTH(a__length(a__U21(mark(z0)))), MARK(length(U21(z0)))) A__U11(tt, length(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__length(a__U31(mark(z0), z1, z2, z3))), MARK(length(U31(z0, z1, z2, z3)))) A__U11(tt, length(take(z0, z1))) -> c2(A__LENGTH(a__length(a__take(mark(z0), mark(z1)))), MARK(length(take(z0, z1)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, U21(zeros)) -> c2(A__LENGTH(a__U21(a__zeros)), MARK(U21(zeros))) A__U11(tt, U21(U11(z0, z1))) -> c2(A__LENGTH(a__U21(a__U11(mark(z0), z1))), MARK(U21(U11(z0, z1)))) A__U11(tt, U21(length(z0))) -> c2(A__LENGTH(a__U21(a__length(mark(z0)))), MARK(U21(length(z0)))) A__U11(tt, U21(U21(z0))) -> c2(A__LENGTH(a__U21(a__U21(mark(z0)))), MARK(U21(U21(z0)))) A__U11(tt, U21(U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__U21(a__U31(mark(z0), z1, z2, z3))), MARK(U21(U31(z0, z1, z2, z3)))) A__U11(tt, U21(take(z0, z1))) -> c2(A__LENGTH(a__U21(a__take(mark(z0), mark(z1)))), MARK(U21(take(z0, z1)))) A__U11(tt, U21(and(z0, z1))) -> c2(A__LENGTH(a__U21(a__and(mark(z0), z1))), MARK(U21(and(z0, z1)))) A__U11(tt, U21(isNat(z0))) -> c2(A__LENGTH(a__U21(a__isNat(z0))), MARK(U21(isNat(z0)))) A__U11(tt, U21(isNatList(z0))) -> c2(A__LENGTH(a__U21(a__isNatList(z0))), MARK(U21(isNatList(z0)))) A__U11(tt, U21(isNatIList(z0))) -> c2(A__LENGTH(a__U21(a__isNatIList(z0))), MARK(U21(isNatIList(z0)))) A__U11(tt, U21(cons(z0, z1))) -> c2(A__LENGTH(a__U21(cons(mark(z0), z1))), MARK(U21(cons(z0, z1)))) A__U11(tt, U21(0)) -> c2(A__LENGTH(a__U21(0)), MARK(U21(0))) A__U11(tt, U21(tt)) -> c2(A__LENGTH(a__U21(tt)), MARK(U21(tt))) A__U11(tt, U21(s(z0))) -> c2(A__LENGTH(a__U21(s(mark(z0)))), MARK(U21(s(z0)))) A__U11(tt, U21(nil)) -> c2(A__LENGTH(a__U21(nil)), MARK(U21(nil))) A__U11(tt, U21(x0)) -> c2(MARK(U21(x0))) A__U11(tt, U31(zeros, x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__zeros, x1, x2, x3)), MARK(U31(zeros, x1, x2, x3))) A__U11(tt, U31(U11(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U11(mark(z0), z1), x1, x2, x3)), MARK(U31(U11(z0, z1), x1, x2, x3))) A__U11(tt, U31(length(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__length(mark(z0)), x1, x2, x3)), MARK(U31(length(z0), x1, x2, x3))) A__U11(tt, U31(U21(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U21(mark(z0)), x1, x2, x3)), MARK(U31(U21(z0), x1, x2, x3))) A__U11(tt, U31(U31(z0, z1, z2, z3), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3)), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) A__U11(tt, U31(take(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3)), MARK(U31(take(z0, z1), x1, x2, x3))) A__U11(tt, U31(and(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__and(mark(z0), z1), x1, x2, x3)), MARK(U31(and(z0, z1), x1, x2, x3))) A__U11(tt, U31(isNat(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNat(z0), x1, x2, x3)), MARK(U31(isNat(z0), x1, x2, x3))) A__U11(tt, U31(isNatList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatList(z0), x1, x2, x3)), MARK(U31(isNatList(z0), x1, x2, x3))) A__U11(tt, U31(isNatIList(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(a__isNatIList(z0), x1, x2, x3)), MARK(U31(isNatIList(z0), x1, x2, x3))) A__U11(tt, U31(cons(z0, z1), x1, x2, x3)) -> c2(A__LENGTH(a__U31(cons(mark(z0), z1), x1, x2, x3)), MARK(U31(cons(z0, z1), x1, x2, x3))) A__U11(tt, U31(tt, x1, x2, x3)) -> c2(A__LENGTH(a__U31(tt, x1, x2, x3)), MARK(U31(tt, x1, x2, x3))) A__U11(tt, U31(s(z0), x1, x2, x3)) -> c2(A__LENGTH(a__U31(s(mark(z0)), x1, x2, x3)), MARK(U31(s(z0), x1, x2, x3))) A__U11(tt, U31(x0, z1, z2, z3)) -> c2(MARK(U31(x0, z1, z2, z3))) A__U11(tt, U31(0, x1, x2, x3)) -> c2(A__LENGTH(a__U31(0, x1, x2, x3))) A__U11(tt, U31(nil, x1, x2, x3)) -> c2(A__LENGTH(a__U31(nil, x1, x2, x3))) A__U11(tt, take(x0, zeros)) -> c2(A__LENGTH(a__take(mark(x0), a__zeros)), MARK(take(x0, zeros))) A__U11(tt, take(x0, U11(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__U11(mark(z0), z1))), MARK(take(x0, U11(z0, z1)))) A__U11(tt, take(x0, length(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__length(mark(z0)))), MARK(take(x0, length(z0)))) A__U11(tt, take(x0, U21(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__U21(mark(z0)))), MARK(take(x0, U21(z0)))) A__U11(tt, take(x0, U31(z0, z1, z2, z3))) -> c2(A__LENGTH(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3))), MARK(take(x0, U31(z0, z1, z2, z3)))) A__U11(tt, take(x0, take(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__take(mark(z0), mark(z1)))), MARK(take(x0, take(z0, z1)))) A__U11(tt, take(x0, and(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), a__and(mark(z0), z1))), MARK(take(x0, and(z0, z1)))) A__U11(tt, take(x0, isNat(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNat(z0))), MARK(take(x0, isNat(z0)))) A__U11(tt, take(x0, isNatList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatList(z0))), MARK(take(x0, isNatList(z0)))) A__U11(tt, take(x0, isNatIList(z0))) -> c2(A__LENGTH(a__take(mark(x0), a__isNatIList(z0))), MARK(take(x0, isNatIList(z0)))) A__U11(tt, take(x0, cons(z0, z1))) -> c2(A__LENGTH(a__take(mark(x0), cons(mark(z0), z1))), MARK(take(x0, cons(z0, z1)))) A__U11(tt, take(x0, 0)) -> c2(A__LENGTH(a__take(mark(x0), 0)), MARK(take(x0, 0))) A__U11(tt, take(x0, tt)) -> c2(A__LENGTH(a__take(mark(x0), tt)), MARK(take(x0, tt))) A__U11(tt, take(x0, s(z0))) -> c2(A__LENGTH(a__take(mark(x0), s(mark(z0)))), MARK(take(x0, s(z0)))) A__U11(tt, take(x0, nil)) -> c2(A__LENGTH(a__take(mark(x0), nil)), MARK(take(x0, nil))) A__U11(tt, take(zeros, x1)) -> c2(A__LENGTH(a__take(a__zeros, mark(x1))), MARK(take(zeros, x1))) A__U11(tt, take(U11(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__U11(mark(z0), z1), mark(x1))), MARK(take(U11(z0, z1), x1))) A__U11(tt, take(length(z0), x1)) -> c2(A__LENGTH(a__take(a__length(mark(z0)), mark(x1))), MARK(take(length(z0), x1))) A__U11(tt, take(U21(z0), x1)) -> c2(A__LENGTH(a__take(a__U21(mark(z0)), mark(x1))), MARK(take(U21(z0), x1))) A__U11(tt, take(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1))), MARK(take(U31(z0, z1, z2, z3), x1))) A__U11(tt, take(take(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__take(mark(z0), mark(z1)), mark(x1))), MARK(take(take(z0, z1), x1))) A__U11(tt, take(and(z0, z1), x1)) -> c2(A__LENGTH(a__take(a__and(mark(z0), z1), mark(x1))), MARK(take(and(z0, z1), x1))) A__U11(tt, take(isNat(z0), x1)) -> c2(A__LENGTH(a__take(a__isNat(z0), mark(x1))), MARK(take(isNat(z0), x1))) A__U11(tt, take(isNatList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatList(z0), mark(x1))), MARK(take(isNatList(z0), x1))) A__U11(tt, take(isNatIList(z0), x1)) -> c2(A__LENGTH(a__take(a__isNatIList(z0), mark(x1))), MARK(take(isNatIList(z0), x1))) A__U11(tt, take(cons(z0, z1), x1)) -> c2(A__LENGTH(a__take(cons(mark(z0), z1), mark(x1))), MARK(take(cons(z0, z1), x1))) A__U11(tt, take(0, x1)) -> c2(A__LENGTH(a__take(0, mark(x1))), MARK(take(0, x1))) A__U11(tt, take(tt, x1)) -> c2(A__LENGTH(a__take(tt, mark(x1))), MARK(take(tt, x1))) A__U11(tt, take(s(z0), x1)) -> c2(A__LENGTH(a__take(s(mark(z0)), mark(x1))), MARK(take(s(z0), x1))) A__U11(tt, take(nil, x1)) -> c2(A__LENGTH(a__take(nil, mark(x1))), MARK(take(nil, x1))) A__U11(tt, take(x0, x1)) -> c2(MARK(take(x0, x1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(U21(z0), x1)) -> c2(A__LENGTH(a__and(a__U21(mark(z0)), x1)), MARK(and(U21(z0), x1))) A__U11(tt, and(U31(z0, z1, z2, z3), x1)) -> c2(A__LENGTH(a__and(a__U31(mark(z0), z1, z2, z3), x1)), MARK(and(U31(z0, z1, z2, z3), x1))) A__U11(tt, and(take(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__take(mark(z0), mark(z1)), x1)), MARK(and(take(z0, z1), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(take(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatList(take(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c16(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c16(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c16(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c16(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c16(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c16(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c19(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c19(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c19(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c19(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c19(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c19(A__ISNAT(s(z0))) A__ISNATLIST(take(length(nil), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(take(length(cons(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(take(length(take(z0, z1)), x1)) -> c20(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(take(length(z0), x1)) -> c20(A__ISNAT(length(z0))) A__ISNATLIST(take(s(0), x1)) -> c20(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATLIST(take(s(length(z0)), x1)) -> c20(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(take(s(s(z0)), x1)) -> c20(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(take(s(z0), x1)) -> c20(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c23(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__U11(a__and(and(a__isNat(x1), isNatIList(x2)), isNat(x0)), take(x1, x2)), A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, take(0, x2))) -> c23(A__U11(a__and(a__and(tt, isNatIList(x2)), isNat(x0)), take(0, x2)), A__AND(a__isNatList(take(0, x2)), isNat(x0)), A__ISNATLIST(take(0, x2))) A__LENGTH(cons(x0, take(length(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNatList(z0), isNatIList(x2)), isNat(x0)), take(length(z0), x2)), A__AND(a__isNatList(take(length(z0), x2)), isNat(x0)), A__ISNATLIST(take(length(z0), x2))) A__LENGTH(cons(x0, take(s(z0), x2))) -> c23(A__U11(a__and(a__and(a__isNat(z0), isNatIList(x2)), isNat(x0)), take(s(z0), x2)), A__AND(a__isNatList(take(s(z0), x2)), isNat(x0)), A__ISNATLIST(take(s(z0), x2))) A__LENGTH(cons(x0, take(z0, x2))) -> c23(A__U11(a__and(a__and(isNat(z0), isNatIList(x2)), isNat(x0)), take(z0, x2)), A__AND(a__isNatList(take(z0, x2)), isNat(x0)), A__ISNATLIST(take(z0, x2))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, take(x1, x2))) -> c23(A__AND(a__isNatList(take(x1, x2)), isNat(x0)), A__ISNATLIST(take(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), isNat(x0)), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, nil)) -> c23(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c23(A__ISNATLIST(z0)) A__TAKE(s(x0), cons(x1, nil)) -> c26(A__U31(a__and(tt, and(isNat(x0), isNat(x1))), nil, x0, x1), A__AND(a__isNatIList(nil), and(isNat(x0), isNat(x1))), A__ISNATILIST(nil)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatList(z1)), and(isNat(x0), isNat(x1))), cons(z0, z1), x0, x1), A__AND(a__isNatIList(cons(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, take(z0, z1))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), take(z0, z1), x0, x1), A__AND(a__isNatIList(take(z0, z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(take(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__U31(a__and(isNatList(z0), and(isNat(x0), isNat(x1))), z0, x0, x1), A__AND(a__isNatIList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__U31(mark(and(isNat(x0), isNat(x1))), zeros, x0, x1), A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(a__isNatIList(zeros), and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__U31(a__and(and(a__isNat(x2), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(x2, x3), x0, x1), A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, cons(0, x3))) -> c26(A__U31(a__and(a__and(tt, isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(0, x3), x0, x1), A__AND(a__isNatIList(cons(0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(0, x3))) A__TAKE(s(x0), cons(x1, cons(length(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNatList(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(length(z0), x3), x0, x1), A__AND(a__isNatIList(cons(length(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(length(z0), x3))) A__TAKE(s(x0), cons(x1, cons(s(z0), x3))) -> c26(A__U31(a__and(a__and(a__isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(s(z0), x3), x0, x1), A__AND(a__isNatIList(cons(s(z0), x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(s(z0), x3))) A__TAKE(s(x0), cons(x1, cons(z0, x3))) -> c26(A__U31(a__and(a__and(isNat(z0), isNatIList(x3)), and(isNat(x0), isNat(x1))), cons(z0, x3), x0, x1), A__AND(a__isNatIList(cons(z0, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, x3))) A__TAKE(s(x0), cons(x1, cons(x2, x3))) -> c26(A__AND(a__isNatIList(cons(x2, x3)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(x2, x3))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__AND(a__isNatList(z0), and(isNat(x0), isNat(x1))), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c26(A__AND(tt, and(isNat(x0), isNat(x1))), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c26(A__AND(a__and(a__isNat(z0), isNatIList(z1)), and(isNat(x0), isNat(x1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c26(A__ISNATILIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c29(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c29(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(U21(z0), x1), x2)) -> c29(A__U11(a__U11(a__U21(mark(z0)), x1), x2), MARK(U11(U21(z0), x1))) MARK(U11(U11(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__U11(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(U11(U31(z0, z1, z2, z3), x1))) MARK(U11(U11(take(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__take(mark(z0), mark(z1)), x1), x2), MARK(U11(take(z0, z1), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c29(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c29(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c29(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c29(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c29(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c29(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c29(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c29(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c29(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c29(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c29(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(U21(z0)), x1)) -> c29(A__U11(a__length(a__U21(mark(z0))), x1), MARK(length(U21(z0)))) MARK(U11(length(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__length(a__U31(mark(z0), z1, z2, z3)), x1), MARK(length(U31(z0, z1, z2, z3)))) MARK(U11(length(take(z0, z1)), x1)) -> c29(A__U11(a__length(a__take(mark(z0), mark(z1))), x1), MARK(length(take(z0, z1)))) MARK(U11(length(and(z0, z1)), x1)) -> c29(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c29(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c29(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c29(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c29(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c29(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c29(MARK(length(x0))) MARK(U11(length(0), x1)) -> c29(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c29(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c29(A__U11(a__length(nil), x1)) MARK(U11(U21(zeros), x1)) -> c29(A__U11(a__U21(a__zeros), x1), MARK(U21(zeros))) MARK(U11(U21(U11(z0, z1)), x1)) -> c29(A__U11(a__U21(a__U11(mark(z0), z1)), x1), MARK(U21(U11(z0, z1)))) MARK(U11(U21(length(z0)), x1)) -> c29(A__U11(a__U21(a__length(mark(z0))), x1), MARK(U21(length(z0)))) MARK(U11(U21(U21(z0)), x1)) -> c29(A__U11(a__U21(a__U21(mark(z0))), x1), MARK(U21(U21(z0)))) MARK(U11(U21(U31(z0, z1, z2, z3)), x1)) -> c29(A__U11(a__U21(a__U31(mark(z0), z1, z2, z3)), x1), MARK(U21(U31(z0, z1, z2, z3)))) MARK(U11(U21(take(z0, z1)), x1)) -> c29(A__U11(a__U21(a__take(mark(z0), mark(z1))), x1), MARK(U21(take(z0, z1)))) MARK(U11(U21(and(z0, z1)), x1)) -> c29(A__U11(a__U21(a__and(mark(z0), z1)), x1), MARK(U21(and(z0, z1)))) MARK(U11(U21(isNat(z0)), x1)) -> c29(A__U11(a__U21(a__isNat(z0)), x1), MARK(U21(isNat(z0)))) MARK(U11(U21(isNatList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatList(z0)), x1), MARK(U21(isNatList(z0)))) MARK(U11(U21(isNatIList(z0)), x1)) -> c29(A__U11(a__U21(a__isNatIList(z0)), x1), MARK(U21(isNatIList(z0)))) MARK(U11(U21(cons(z0, z1)), x1)) -> c29(A__U11(a__U21(cons(mark(z0), z1)), x1), MARK(U21(cons(z0, z1)))) MARK(U11(U21(0), x1)) -> c29(A__U11(a__U21(0), x1), MARK(U21(0))) MARK(U11(U21(tt), x1)) -> c29(A__U11(a__U21(tt), x1), MARK(U21(tt))) MARK(U11(U21(s(z0)), x1)) -> c29(A__U11(a__U21(s(mark(z0))), x1), MARK(U21(s(z0)))) MARK(U11(U21(nil), x1)) -> c29(A__U11(a__U21(nil), x1), MARK(U21(nil))) MARK(U11(U21(x0), x1)) -> c29(MARK(U21(x0))) MARK(U11(U31(zeros, x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__zeros, x1, x2, x3), x4), MARK(U31(zeros, x1, x2, x3))) MARK(U11(U31(U11(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U11(mark(z0), z1), x1, x2, x3), x4), MARK(U31(U11(z0, z1), x1, x2, x3))) MARK(U11(U31(length(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__length(mark(z0)), x1, x2, x3), x4), MARK(U31(length(z0), x1, x2, x3))) MARK(U11(U31(U21(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U21(mark(z0)), x1, x2, x3), x4), MARK(U31(U21(z0), x1, x2, x3))) MARK(U11(U31(U31(z0, z1, z2, z3), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__U31(mark(z0), z1, z2, z3), x1, x2, x3), x4), MARK(U31(U31(z0, z1, z2, z3), x1, x2, x3))) MARK(U11(U31(take(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__take(mark(z0), mark(z1)), x1, x2, x3), x4), MARK(U31(take(z0, z1), x1, x2, x3))) MARK(U11(U31(and(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__and(mark(z0), z1), x1, x2, x3), x4), MARK(U31(and(z0, z1), x1, x2, x3))) MARK(U11(U31(isNat(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNat(z0), x1, x2, x3), x4), MARK(U31(isNat(z0), x1, x2, x3))) MARK(U11(U31(isNatList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatList(z0), x1, x2, x3), x4), MARK(U31(isNatList(z0), x1, x2, x3))) MARK(U11(U31(isNatIList(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(a__isNatIList(z0), x1, x2, x3), x4), MARK(U31(isNatIList(z0), x1, x2, x3))) MARK(U11(U31(cons(z0, z1), x1, x2, x3), x4)) -> c29(A__U11(a__U31(cons(mark(z0), z1), x1, x2, x3), x4), MARK(U31(cons(z0, z1), x1, x2, x3))) MARK(U11(U31(tt, x1, x2, x3), x4)) -> c29(A__U11(a__U31(tt, x1, x2, x3), x4), MARK(U31(tt, x1, x2, x3))) MARK(U11(U31(s(z0), x1, x2, x3), x4)) -> c29(A__U11(a__U31(s(mark(z0)), x1, x2, x3), x4), MARK(U31(s(z0), x1, x2, x3))) MARK(U11(U31(x0, z1, z2, z3), x4)) -> c29(MARK(U31(x0, z1, z2, z3))) MARK(U11(U31(0, x1, x2, x3), x4)) -> c29(A__U11(a__U31(0, x1, x2, x3), x4)) MARK(U11(U31(nil, x1, x2, x3), x4)) -> c29(A__U11(a__U31(nil, x1, x2, x3), x4)) MARK(U11(take(x0, zeros), x2)) -> c29(A__U11(a__take(mark(x0), a__zeros), x2), MARK(take(x0, zeros))) MARK(U11(take(x0, U11(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__U11(mark(z0), z1)), x2), MARK(take(x0, U11(z0, z1)))) MARK(U11(take(x0, length(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__length(mark(z0))), x2), MARK(take(x0, length(z0)))) MARK(U11(take(x0, U21(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__U21(mark(z0))), x2), MARK(take(x0, U21(z0)))) MARK(U11(take(x0, U31(z0, z1, z2, z3)), x2)) -> c29(A__U11(a__take(mark(x0), a__U31(mark(z0), z1, z2, z3)), x2), MARK(take(x0, U31(z0, z1, z2, z3)))) MARK(U11(take(x0, take(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__take(mark(z0), mark(z1))), x2), MARK(take(x0, take(z0, z1)))) MARK(U11(take(x0, and(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), a__and(mark(z0), z1)), x2), MARK(take(x0, and(z0, z1)))) MARK(U11(take(x0, isNat(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNat(z0)), x2), MARK(take(x0, isNat(z0)))) MARK(U11(take(x0, isNatList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatList(z0)), x2), MARK(take(x0, isNatList(z0)))) MARK(U11(take(x0, isNatIList(z0)), x2)) -> c29(A__U11(a__take(mark(x0), a__isNatIList(z0)), x2), MARK(take(x0, isNatIList(z0)))) MARK(U11(take(x0, cons(z0, z1)), x2)) -> c29(A__U11(a__take(mark(x0), cons(mark(z0), z1)), x2), MARK(take(x0, cons(z0, z1)))) MARK(U11(take(x0, 0), x2)) -> c29(A__U11(a__take(mark(x0), 0), x2), MARK(take(x0, 0))) MARK(U11(take(x0, tt), x2)) -> c29(A__U11(a__take(mark(x0), tt), x2), MARK(take(x0, tt))) MARK(U11(take(x0, s(z0)), x2)) -> c29(A__U11(a__take(mark(x0), s(mark(z0))), x2), MARK(take(x0, s(z0)))) MARK(U11(take(x0, nil), x2)) -> c29(A__U11(a__take(mark(x0), nil), x2), MARK(take(x0, nil))) MARK(U11(take(zeros, x1), x2)) -> c29(A__U11(a__take(a__zeros, mark(x1)), x2), MARK(take(zeros, x1))) MARK(U11(take(U11(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__U11(mark(z0), z1), mark(x1)), x2), MARK(take(U11(z0, z1), x1))) MARK(U11(take(length(z0), x1), x2)) -> c29(A__U11(a__take(a__length(mark(z0)), mark(x1)), x2), MARK(take(length(z0), x1))) MARK(U11(take(U21(z0), x1), x2)) -> c29(A__U11(a__take(a__U21(mark(z0)), mark(x1)), x2), MARK(take(U21(z0), x1))) MARK(U11(take(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__take(a__U31(mark(z0), z1, z2, z3), mark(x1)), x2), MARK(take(U31(z0, z1, z2, z3), x1))) MARK(U11(take(take(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__take(mark(z0), mark(z1)), mark(x1)), x2), MARK(take(take(z0, z1), x1))) MARK(U11(take(and(z0, z1), x1), x2)) -> c29(A__U11(a__take(a__and(mark(z0), z1), mark(x1)), x2), MARK(take(and(z0, z1), x1))) MARK(U11(take(isNat(z0), x1), x2)) -> c29(A__U11(a__take(a__isNat(z0), mark(x1)), x2), MARK(take(isNat(z0), x1))) MARK(U11(take(isNatList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatList(z0), mark(x1)), x2), MARK(take(isNatList(z0), x1))) MARK(U11(take(isNatIList(z0), x1), x2)) -> c29(A__U11(a__take(a__isNatIList(z0), mark(x1)), x2), MARK(take(isNatIList(z0), x1))) MARK(U11(take(cons(z0, z1), x1), x2)) -> c29(A__U11(a__take(cons(mark(z0), z1), mark(x1)), x2), MARK(take(cons(z0, z1), x1))) MARK(U11(take(0, x1), x2)) -> c29(A__U11(a__take(0, mark(x1)), x2), MARK(take(0, x1))) MARK(U11(take(tt, x1), x2)) -> c29(A__U11(a__take(tt, mark(x1)), x2), MARK(take(tt, x1))) MARK(U11(take(s(z0), x1), x2)) -> c29(A__U11(a__take(s(mark(z0)), mark(x1)), x2), MARK(take(s(z0), x1))) MARK(U11(take(nil, x1), x2)) -> c29(A__U11(a__take(nil, mark(x1)), x2), MARK(take(nil, x1))) MARK(U11(take(x0, x1), x2)) -> c29(MARK(take(x0, x1))) MARK(U11(and(zeros, x1), x2)) -> c29(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c29(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(U21(z0), x1), x2)) -> c29(A__U11(a__and(a__U21(mark(z0)), x1), x2), MARK(and(U21(z0), x1))) MARK(U11(and(U31(z0, z1, z2, z3), x1), x2)) -> c29(A__U11(a__and(a__U31(mark(z0), z1, z2, z3), x1), x2), MARK(and(U31(z0, z1, z2, z3), x1))) MARK(U11(and(take(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__take(mark(z0), mark(z1)), x1), x2), MARK(and(take(z0, z1), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c29(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c29(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c29(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c29(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c29(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c29(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c29(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c29(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c29(A__U11(a__and(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__U21_1, a__U31_4, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, a__take_2, mark_1 Defined Pair Symbols: A__U31_4, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__TAKE_2, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c6_1, c8_1, c11_1, c12_1, c14_1, c36_1, c37_1, c38_1, c39_1, c42_1, c25_1, c31_1, c2_2, c2_1, c16_1, c19_1, c20_1, c26_2, c29_2, c29_1, c30_2, c30_1, c32_2, c32_1, c33_2, c33_1, c34_2, c34_1, c35_2, c35_1, c16_2, c19_2, c20_2, c23_3, c23_1, c23_2, c26_3, c26_1