KILLED proof of input_gJzt9H8TI1.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 46 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 46.7 s] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 37.4 s] (18) BEST (19) proven lower bound (20) LowerBoundPropagationProof [FINISHED, 0 ms] (21) BOUNDS(n^1, INF) (22) typed CpxTrs (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) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxRelTRS (31) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (32) CpxTRS (33) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CpxWeightedTrs (35) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CpxTypedWeightedTrs (37) CompletionProof [UPPER BOUND(ID), 0 ms] (38) CpxTypedWeightedCompleteTrs (39) NarrowingProof [BOTH BOUNDS(ID, ID), 734 ms] (40) CpxTypedWeightedCompleteTrs (41) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 14 ms] (42) CpxRNTS (43) InliningProof [UPPER BOUND(ID), 1612 ms] (44) CpxRNTS (45) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CpxRNTS (47) CompletionProof [UPPER BOUND(ID), 64 ms] (48) CpxTypedWeightedCompleteTrs (49) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 2 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 8 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), 0 ms] (90) CdtProblem (91) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 3 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 56 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 4 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (112) CdtProblem (113) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 19 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 25 ms] (124) CdtProblem (125) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 19 ms] (128) CdtProblem (129) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (140) CdtProblem (141) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (156) CdtProblem (157) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (160) CdtProblem (161) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 20 ms] (164) CdtProblem (165) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (166) CdtProblem (167) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (170) CdtProblem (171) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (172) CdtProblem (173) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 33 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 11 ms] (180) CdtProblem (181) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 25 ms] (184) CdtProblem (185) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 5 ms] (188) CdtProblem (189) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (190) CdtProblem (191) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 1 ms] (192) CdtProblem (193) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (196) CdtProblem (197) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (198) CdtProblem (199) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (200) CdtProblem (201) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (202) CdtProblem (203) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 1 ms] (204) CdtProblem (205) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (206) CdtProblem (207) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 18 ms] (208) CdtProblem (209) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (210) CdtProblem (211) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (212) CdtProblem (213) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (214) CdtProblem (215) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 52 ms] (216) CdtProblem (217) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (218) CdtProblem (219) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 52 ms] (220) CdtProblem (221) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (222) CdtProblem (223) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 55 ms] (224) CdtProblem (225) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (226) CdtProblem (227) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 68 ms] (228) CdtProblem (229) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 96 ms] (232) CdtProblem (233) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (234) CdtProblem (235) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (236) CpxWeightedTrs (237) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (238) CpxTypedWeightedTrs (239) CompletionProof [UPPER BOUND(ID), 0 ms] (240) CpxTypedWeightedCompleteTrs (241) NarrowingProof [BOTH BOUNDS(ID, ID), 82 ms] (242) CpxTypedWeightedCompleteTrs (243) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 16 ms] (244) CpxRNTS (245) InliningProof [UPPER BOUND(ID), 725 ms] (246) CpxRNTS (247) SimplificationProof [BOTH BOUNDS(ID, ID), 12 ms] (248) CpxRNTS (249) CompletionProof [UPPER BOUND(ID), 0 ms] (250) CpxTypedWeightedCompleteTrs (251) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 19 ms] (252) CpxRNTS ---------------------------------------- (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) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) 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 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: 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 The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: 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 The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: 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 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 Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c2 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c22:c23:c24 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c3 :: c2:c3 A__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c6:c7 c6 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c6:c7 c7 :: c6:c7 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c8:c9 c8 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c8:c9 c9 :: c8:c9 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c10:c11:c12:c13 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c10 :: c10:c11:c12:c13 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c11 :: c18:c19:c20:c21 -> c10:c11:c12:c13 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c18:c19:c20:c21 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c12 :: c10:c11:c12:c13 -> c10:c11:c12:c13 c13 :: c10:c11:c12:c13 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c14:c15:c16:c17 c14 :: c18:c19:c20:c21 -> c14:c15:c16:c17 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c15 :: c14:c15:c16:c17 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c16 :: c8:c9 -> c10:c11:c12:c13 -> c14:c15:c16:c17 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c17 :: c14:c15:c16:c17 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c18 :: c18:c19:c20:c21 c19 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c20 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 c21 :: c18:c19:c20:c21 c22 :: c22:c23:c24 c23 :: c2:c3 -> c8:c9 -> c18:c19:c20:c21 -> c22:c23:c24 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c24 :: c22:c23:c24 A__TAKE :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c25:c26:c27 c25 :: c4:c5 -> c14:c15:c16:c17 -> c25:c26:c27 a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c26 :: c6:c7 -> c8:c9 -> c14:c15:c16:c17 -> c25:c26:c27 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c27 :: c25:c26:c27 c28 :: c:c1 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c29 :: c2:c3 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c30 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c31 :: c4:c5 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c32 :: c6:c7 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c33 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c34 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c35 :: c8:c9 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c36 :: c10:c11:c12:c13 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c37 :: c18:c19:c20:c21 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c38 :: c14:c15:c16:c17 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c39 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c40 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c41 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c42 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c43 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c:c11_44 :: c:c1 hole_c2:c32_44 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U313_44 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c22:c23:c244_44 :: c22:c23:c24 hole_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c435_44 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 hole_c4:c56_44 :: c4:c5 hole_c6:c77_44 :: c6:c7 hole_c8:c98_44 :: c8:c9 hole_c10:c11:c12:c139_44 :: c10:c11:c12:c13 hole_c18:c19:c20:c2110_44 :: c18:c19:c20:c21 hole_c14:c15:c16:c1711_44 :: c14:c15:c16:c17 hole_c25:c26:c2712_44 :: c25:c26:c27 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44 :: Nat -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 gen_c10:c11:c12:c1315_44 :: Nat -> c10:c11:c12:c13 ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__U11, A__LENGTH, mark, MARK, A__U31, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__isNat, a__and, a__isNatList, a__isNatIList, a__U11, a__length, a__U31 They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__U31 A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__U31 A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__isNatIList mark = a__U11 mark = a__length mark = a__U31 MARK = A__U31 MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST a__and < MARK a__isNatIList < MARK A__U31 = A__AND A__U31 = A__ISNAT A__U31 = A__ISNATLIST A__U31 = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__isNatIList a__isNat = a__U11 a__isNat = a__length a__isNat = a__U31 a__and = a__isNatList a__and = a__isNatIList a__and = a__U11 a__and = a__length a__and = a__U31 a__isNatList = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__U31 a__isNatIList = a__U11 a__isNatIList = a__length a__isNatIList = a__U31 a__U11 = a__length a__U11 = a__U31 a__length = a__U31 ---------------------------------------- (14) Obligation: Innermost TRS: Rules: 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 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 Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c2 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c22:c23:c24 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c3 :: c2:c3 A__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c6:c7 c6 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c6:c7 c7 :: c6:c7 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c8:c9 c8 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c8:c9 c9 :: c8:c9 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c10:c11:c12:c13 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c10 :: c10:c11:c12:c13 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c11 :: c18:c19:c20:c21 -> c10:c11:c12:c13 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c18:c19:c20:c21 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c12 :: c10:c11:c12:c13 -> c10:c11:c12:c13 c13 :: c10:c11:c12:c13 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c14:c15:c16:c17 c14 :: c18:c19:c20:c21 -> c14:c15:c16:c17 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c15 :: c14:c15:c16:c17 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c16 :: c8:c9 -> c10:c11:c12:c13 -> c14:c15:c16:c17 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c17 :: c14:c15:c16:c17 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c18 :: c18:c19:c20:c21 c19 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c20 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 c21 :: c18:c19:c20:c21 c22 :: c22:c23:c24 c23 :: c2:c3 -> c8:c9 -> c18:c19:c20:c21 -> c22:c23:c24 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c24 :: c22:c23:c24 A__TAKE :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c25:c26:c27 c25 :: c4:c5 -> c14:c15:c16:c17 -> c25:c26:c27 a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c26 :: c6:c7 -> c8:c9 -> c14:c15:c16:c17 -> c25:c26:c27 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c27 :: c25:c26:c27 c28 :: c:c1 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c29 :: c2:c3 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c30 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c31 :: c4:c5 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c32 :: c6:c7 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c33 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c34 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c35 :: c8:c9 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c36 :: c10:c11:c12:c13 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c37 :: c18:c19:c20:c21 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c38 :: c14:c15:c16:c17 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c39 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c40 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c41 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c42 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c43 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c:c11_44 :: c:c1 hole_c2:c32_44 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U313_44 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c22:c23:c244_44 :: c22:c23:c24 hole_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c435_44 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 hole_c4:c56_44 :: c4:c5 hole_c6:c77_44 :: c6:c7 hole_c8:c98_44 :: c8:c9 hole_c10:c11:c12:c139_44 :: c10:c11:c12:c13 hole_c18:c19:c20:c2110_44 :: c18:c19:c20:c21 hole_c14:c15:c16:c1711_44 :: c14:c15:c16:c17 hole_c25:c26:c2712_44 :: c25:c26:c27 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44 :: Nat -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 gen_c10:c11:c12:c1315_44 :: Nat -> c10:c11:c12:c13 Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(x)) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(0) <=> c28(c) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(+(x, 1)) <=> c29(c2(c22, c28(c)), gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(x)) gen_c10:c11:c12:c1315_44(0) <=> c10 gen_c10:c11:c12:c1315_44(+(x, 1)) <=> c12(gen_c10:c11:c12:c1315_44(x)) The following defined symbols remain to be analysed: a__U11, A__U11, A__LENGTH, mark, MARK, A__U31, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__isNat, a__and, a__isNatList, a__isNatIList, a__length, a__U31 They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__U31 A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__U31 A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__isNatIList mark = a__U11 mark = a__length mark = a__U31 MARK = A__U31 MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST a__and < MARK a__isNatIList < MARK A__U31 = A__AND A__U31 = A__ISNAT A__U31 = A__ISNATLIST A__U31 = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__isNatIList a__isNat = a__U11 a__isNat = a__length a__isNat = a__U31 a__and = a__isNatList a__and = a__isNatIList a__and = a__U11 a__and = a__length a__and = a__U31 a__isNatList = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__U31 a__isNatIList = a__U11 a__isNatIList = a__length a__isNatIList = a__U31 a__U11 = a__length a__U11 = a__U31 a__length = a__U31 ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44), rt in Omega(0) Induction Base: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(0)) ->_R^Omega(0) tt Induction Step: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(n3879113_44, 1))) ->_R^Omega(0) a__length(mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44))) ->_IH a__length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(c3879114_44)) ->_R^Omega(0) length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (16) Obligation: Innermost TRS: Rules: 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 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 Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c2 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c22:c23:c24 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c3 :: c2:c3 A__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c6:c7 c6 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c6:c7 c7 :: c6:c7 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c8:c9 c8 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c8:c9 c9 :: c8:c9 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c10:c11:c12:c13 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c10 :: c10:c11:c12:c13 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c11 :: c18:c19:c20:c21 -> c10:c11:c12:c13 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c18:c19:c20:c21 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c12 :: c10:c11:c12:c13 -> c10:c11:c12:c13 c13 :: c10:c11:c12:c13 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c14:c15:c16:c17 c14 :: c18:c19:c20:c21 -> c14:c15:c16:c17 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c15 :: c14:c15:c16:c17 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c16 :: c8:c9 -> c10:c11:c12:c13 -> c14:c15:c16:c17 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c17 :: c14:c15:c16:c17 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c18 :: c18:c19:c20:c21 c19 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c20 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 c21 :: c18:c19:c20:c21 c22 :: c22:c23:c24 c23 :: c2:c3 -> c8:c9 -> c18:c19:c20:c21 -> c22:c23:c24 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c24 :: c22:c23:c24 A__TAKE :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c25:c26:c27 c25 :: c4:c5 -> c14:c15:c16:c17 -> c25:c26:c27 a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c26 :: c6:c7 -> c8:c9 -> c14:c15:c16:c17 -> c25:c26:c27 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c27 :: c25:c26:c27 c28 :: c:c1 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c29 :: c2:c3 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c30 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c31 :: c4:c5 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c32 :: c6:c7 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c33 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c34 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c35 :: c8:c9 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c36 :: c10:c11:c12:c13 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c37 :: c18:c19:c20:c21 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c38 :: c14:c15:c16:c17 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c39 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c40 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c41 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c42 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c43 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c:c11_44 :: c:c1 hole_c2:c32_44 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U313_44 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c22:c23:c244_44 :: c22:c23:c24 hole_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c435_44 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 hole_c4:c56_44 :: c4:c5 hole_c6:c77_44 :: c6:c7 hole_c8:c98_44 :: c8:c9 hole_c10:c11:c12:c139_44 :: c10:c11:c12:c13 hole_c18:c19:c20:c2110_44 :: c18:c19:c20:c21 hole_c14:c15:c16:c1711_44 :: c14:c15:c16:c17 hole_c25:c26:c2712_44 :: c25:c26:c27 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44 :: Nat -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 gen_c10:c11:c12:c1315_44 :: Nat -> c10:c11:c12:c13 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44), rt in Omega(0) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(x)) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(0) <=> c28(c) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(+(x, 1)) <=> c29(c2(c22, c28(c)), gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(x)) gen_c10:c11:c12:c1315_44(0) <=> c10 gen_c10:c11:c12:c1315_44(+(x, 1)) <=> c12(gen_c10:c11:c12:c1315_44(x)) The following defined symbols remain to be analysed: a__U31, A__U11, A__LENGTH, MARK, A__U31, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__isNat, a__and, a__isNatList, a__isNatIList, a__U11, a__length They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__U31 A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__U31 A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__isNatIList mark = a__U11 mark = a__length mark = a__U31 MARK = A__U31 MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST a__and < MARK a__isNatIList < MARK A__U31 = A__AND A__U31 = A__ISNAT A__U31 = A__ISNATLIST A__U31 = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__isNatIList a__isNat = a__U11 a__isNat = a__length a__isNat = a__U31 a__and = a__isNatList a__and = a__isNatIList a__and = a__U11 a__and = a__length a__and = a__U31 a__isNatList = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__U31 a__isNatIList = a__U11 a__isNatIList = a__length a__isNatIList = a__U31 a__U11 = a__length a__U11 = a__U31 a__length = a__U31 ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44))) -> *16_44, rt in Omega(n6173029_44) Induction Base: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, 0))) Induction Step: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, +(n6173029_44, 1)))) ->_R^Omega(1) c30(A__LENGTH(mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44)))), MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44)))) ->_L^Omega(0) c30(A__LENGTH(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44))), MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44)))) ->_R^Omega(1) c30(c24, MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44)))) ->_IH c30(c24, *16_44) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (18) Complex Obligation (BEST) ---------------------------------------- (19) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: 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 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 Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c2 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c22:c23:c24 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c3 :: c2:c3 A__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c6:c7 c6 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c6:c7 c7 :: c6:c7 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c8:c9 c8 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c8:c9 c9 :: c8:c9 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c10:c11:c12:c13 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c10 :: c10:c11:c12:c13 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c11 :: c18:c19:c20:c21 -> c10:c11:c12:c13 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c18:c19:c20:c21 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c12 :: c10:c11:c12:c13 -> c10:c11:c12:c13 c13 :: c10:c11:c12:c13 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c14:c15:c16:c17 c14 :: c18:c19:c20:c21 -> c14:c15:c16:c17 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c15 :: c14:c15:c16:c17 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c16 :: c8:c9 -> c10:c11:c12:c13 -> c14:c15:c16:c17 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c17 :: c14:c15:c16:c17 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c18 :: c18:c19:c20:c21 c19 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c20 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 c21 :: c18:c19:c20:c21 c22 :: c22:c23:c24 c23 :: c2:c3 -> c8:c9 -> c18:c19:c20:c21 -> c22:c23:c24 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c24 :: c22:c23:c24 A__TAKE :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c25:c26:c27 c25 :: c4:c5 -> c14:c15:c16:c17 -> c25:c26:c27 a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c26 :: c6:c7 -> c8:c9 -> c14:c15:c16:c17 -> c25:c26:c27 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c27 :: c25:c26:c27 c28 :: c:c1 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c29 :: c2:c3 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c30 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c31 :: c4:c5 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c32 :: c6:c7 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c33 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c34 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c35 :: c8:c9 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c36 :: c10:c11:c12:c13 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c37 :: c18:c19:c20:c21 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c38 :: c14:c15:c16:c17 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c39 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c40 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c41 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c42 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c43 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c:c11_44 :: c:c1 hole_c2:c32_44 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U313_44 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c22:c23:c244_44 :: c22:c23:c24 hole_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c435_44 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 hole_c4:c56_44 :: c4:c5 hole_c6:c77_44 :: c6:c7 hole_c8:c98_44 :: c8:c9 hole_c10:c11:c12:c139_44 :: c10:c11:c12:c13 hole_c18:c19:c20:c2110_44 :: c18:c19:c20:c21 hole_c14:c15:c16:c1711_44 :: c14:c15:c16:c17 hole_c25:c26:c2712_44 :: c25:c26:c27 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44 :: Nat -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 gen_c10:c11:c12:c1315_44 :: Nat -> c10:c11:c12:c13 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44), rt in Omega(0) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(x)) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(0) <=> c28(c) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(+(x, 1)) <=> c29(c2(c22, c28(c)), gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(x)) gen_c10:c11:c12:c1315_44(0) <=> c10 gen_c10:c11:c12:c1315_44(+(x, 1)) <=> c12(gen_c10:c11:c12:c1315_44(x)) The following defined symbols remain to be analysed: MARK, A__U31, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST They will be analysed ascendingly in the following order: A__U11 = A__LENGTH A__U11 = MARK A__U11 = A__U31 A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__U31 A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST MARK = A__U31 MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__U31 = A__AND A__U31 = A__ISNAT A__U31 = A__ISNATLIST A__U31 = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST ---------------------------------------- (20) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (21) BOUNDS(n^1, INF) ---------------------------------------- (22) Obligation: Innermost TRS: Rules: 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 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 Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c2 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c22:c23:c24 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c3 :: c2:c3 A__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c6:c7 c6 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c6:c7 c7 :: c6:c7 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c8:c9 c8 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c8:c9 c9 :: c8:c9 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c10:c11:c12:c13 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c10 :: c10:c11:c12:c13 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c11 :: c18:c19:c20:c21 -> c10:c11:c12:c13 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c18:c19:c20:c21 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c12 :: c10:c11:c12:c13 -> c10:c11:c12:c13 c13 :: c10:c11:c12:c13 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c14:c15:c16:c17 c14 :: c18:c19:c20:c21 -> c14:c15:c16:c17 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c15 :: c14:c15:c16:c17 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c16 :: c8:c9 -> c10:c11:c12:c13 -> c14:c15:c16:c17 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c17 :: c14:c15:c16:c17 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c18 :: c18:c19:c20:c21 c19 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c20 :: c8:c9 -> c10:c11:c12:c13 -> c18:c19:c20:c21 c21 :: c18:c19:c20:c21 c22 :: c22:c23:c24 c23 :: c2:c3 -> c8:c9 -> c18:c19:c20:c21 -> c22:c23:c24 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c24 :: c22:c23:c24 A__TAKE :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> c25:c26:c27 c25 :: c4:c5 -> c14:c15:c16:c17 -> c25:c26:c27 a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c26 :: c6:c7 -> c8:c9 -> c14:c15:c16:c17 -> c25:c26:c27 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c27 :: c25:c26:c27 c28 :: c:c1 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c29 :: c2:c3 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c30 :: c22:c23:c24 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c31 :: c4:c5 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 c32 :: c6:c7 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c33 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c34 :: c25:c26:c27 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c35 :: c8:c9 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c36 :: c10:c11:c12:c13 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c37 :: c18:c19:c20:c21 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c38 :: c14:c15:c16:c17 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c39 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c40 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c41 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c42 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 c43 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U21 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__U31 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 a__take :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c:c11_44 :: c:c1 hole_c2:c32_44 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U313_44 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 hole_c22:c23:c244_44 :: c22:c23:c24 hole_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c435_44 :: c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 hole_c4:c56_44 :: c4:c5 hole_c6:c77_44 :: c6:c7 hole_c8:c98_44 :: c8:c9 hole_c10:c11:c12:c139_44 :: c10:c11:c12:c13 hole_c18:c19:c20:c2110_44 :: c18:c19:c20:c21 hole_c14:c15:c16:c1711_44 :: c14:c15:c16:c17 hole_c25:c26:c2712_44 :: c25:c26:c27 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U31 gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44 :: Nat -> c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43 gen_c10:c11:c12:c1315_44 :: Nat -> c10:c11:c12:c13 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(n3879113_44), rt in Omega(0) MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(1, n6173029_44))) -> *16_44, rt in Omega(n6173029_44) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:take:isNat:and:U11:U21:U3113_44(x)) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(0) <=> c28(c) gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(+(x, 1)) <=> c29(c2(c22, c28(c)), gen_c28:c29:c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c4314_44(x)) gen_c10:c11:c12:c1315_44(0) <=> c10 gen_c10:c11:c12:c1315_44(+(x, 1)) <=> c12(gen_c10:c11:c12:c1315_44(x)) The following defined symbols remain to be analysed: A__U31, A__U11, A__LENGTH, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST They will be analysed ascendingly in the following order: A__U11 = A__LENGTH A__U11 = MARK A__U11 = A__U31 A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__U31 A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST MARK = A__U31 MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__U31 = A__AND A__U31 = A__ISNAT A__U31 = A__ISNATLIST A__U31 = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST ---------------------------------------- (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__ISNATLIST(z0) -> c21 A__ISNAT(0) -> c10 A__U11(z0, z1) -> c3 MARK(0) -> c40 A__U21(tt) -> c4 A__TAKE(z0, z1) -> c27 A__ISNATILIST(zeros) -> c15 A__LENGTH(z0) -> c24 A__U31(z0, z1, z2, z3) -> c7 MARK(zeros) -> c28(A__ZEROS) A__U21(z0) -> c5 MARK(nil) -> c43 A__LENGTH(nil) -> c22 A__ZEROS -> c1 A__ZEROS -> c A__ISNAT(z0) -> c13 A__AND(z0, z1) -> c9 MARK(tt) -> c41 A__ISNATLIST(nil) -> c18 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) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (30) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__U11(tt, z0) -> 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)) The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (31) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (32) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__U11(tt, z0) -> 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)) 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 S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (33) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (34) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) [1] A__AND(tt, z0) -> c8(MARK(z0)) [1] A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] 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)) [1] 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)) [1] MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c36(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c39(MARK(z0)) [1] MARK(s(z0)) -> c42(MARK(z0)) [1] A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) [1] MARK(U21(z0)) -> c31(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__U21(tt) -> nil [0] a__U21(z0) -> U21(z0) [0] a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) [0] a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] a__take(0, z0) -> a__U21(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(U21(z0)) -> a__U21(mark(z0)) [0] mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] Rewrite Strategy: INNERMOST ---------------------------------------- (35) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (36) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) [1] A__AND(tt, z0) -> c8(MARK(z0)) [1] A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] 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)) [1] 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)) [1] MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c36(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c39(MARK(z0)) [1] MARK(s(z0)) -> c42(MARK(z0)) [1] A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) [1] MARK(U21(z0)) -> c31(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__U21(tt) -> nil [0] a__U21(z0) -> U21(z0) [0] a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) [0] a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] a__take(0, z0) -> a__U21(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(U21(z0)) -> a__U21(mark(z0)) [0] mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c2 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c23 mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil MARK :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 A__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c6 c6 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c6 A__AND :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c8 c8 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c8 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c11:c12 length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c11 :: c19:c20 -> c11:c12 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c19:c20 s :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c12 :: c11:c12 -> c11:c12 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c14:c16 c14 :: c19:c20 -> c14:c16 cons :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c16 :: c8 -> c11:c12 -> c14:c16 a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c19 :: c8 -> c11:c12 -> c19:c20 isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c20 :: c8 -> c11:c12 -> c19:c20 c23 :: c2 -> c8 -> c19:c20 -> c23 a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil A__TAKE :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> c26:c25 c26 :: c6 -> c8 -> c14:c16 -> c26:c25 a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c29 :: c2 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c30 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c32 :: c6 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c33 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c34 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c35 :: c8 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c36 :: c11:c12 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c37 :: c19:c20 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c38 :: c14:c16 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c39 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c42 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 0 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c25 :: c14:c16 -> c26:c25 U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil c31 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil nil :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil Rewrite Strategy: INNERMOST ---------------------------------------- (37) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: A__U11_2 A__U31_4 A__AND_2 A__ISNAT_1 A__ISNATILIST_1 A__ISNATLIST_1 A__LENGTH_1 A__TAKE_2 MARK_1 (c) The following functions are completely defined: 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 Due to the following rules being added: a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__U21(v0) -> null_a__U21 [0] a__U31(v0, v1, v2, v3) -> null_a__U31 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__zeros, null_a__U11, null_a__U21, null_a__U31, null_a__and, null_a__isNat, null_a__isNatIList, null_a__isNatList, null_a__length, null_a__take, null_mark, const, const1, const2, const3, const4, const5, const6, const7, const8 ---------------------------------------- (38) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) [1] A__AND(tt, z0) -> c8(MARK(z0)) [1] A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] 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)) [1] 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)) [1] MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c36(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c39(MARK(z0)) [1] MARK(s(z0)) -> c42(MARK(z0)) [1] A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) [1] MARK(U21(z0)) -> c31(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__U21(tt) -> nil [0] a__U21(z0) -> U21(z0) [0] a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) [0] a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] a__take(0, z0) -> a__U21(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(U21(z0)) -> a__U21(mark(z0)) [0] mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__U21(v0) -> null_a__U21 [0] a__U31(v0, v1, v2, v3) -> null_a__U31 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c2 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c23 mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 A__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c6 c6 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c6 A__AND :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c8 c8 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c8 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c11:c12 length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c11 :: c19:c20 -> c11:c12 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c19:c20 s :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c12 :: c11:c12 -> c11:c12 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c14:c16 c14 :: c19:c20 -> c14:c16 cons :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c16 :: c8 -> c11:c12 -> c14:c16 a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c19 :: c8 -> c11:c12 -> c19:c20 isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c20 :: c8 -> c11:c12 -> c19:c20 c23 :: c2 -> c8 -> c19:c20 -> c23 a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark A__TAKE :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c26:c25 c26 :: c6 -> c8 -> c14:c16 -> c26:c25 a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c29 :: c2 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c30 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c32 :: c6 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c33 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c34 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c35 :: c8 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c36 :: c11:c12 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c37 :: c19:c20 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c38 :: c14:c16 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c39 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c42 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 0 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c25 :: c14:c16 -> c26:c25 U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c31 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark const :: c2 const1 :: c23 const2 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 const3 :: c6 const4 :: c8 const5 :: c11:c12 const6 :: c19:c20 const7 :: c14:c16 const8 :: c26:c25 Rewrite Strategy: INNERMOST ---------------------------------------- (39) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (40) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) [1] A__U11(tt, U11(z0', z1')) -> c2(A__LENGTH(a__U11(mark(z0'), z1')), MARK(U11(z0', z1'))) [1] A__U11(tt, length(z0'')) -> c2(A__LENGTH(a__length(mark(z0''))), MARK(length(z0''))) [1] A__U11(tt, U21(z01)) -> c2(A__LENGTH(a__U21(mark(z01))), MARK(U21(z01))) [1] A__U11(tt, U31(z02, z1'', z2', z3')) -> c2(A__LENGTH(a__U31(mark(z02), z1'', z2', z3')), MARK(U31(z02, z1'', z2', z3'))) [1] A__U11(tt, take(z03, z11)) -> c2(A__LENGTH(a__take(mark(z03), mark(z11))), MARK(take(z03, z11))) [1] A__U11(tt, and(z04, z12)) -> c2(A__LENGTH(a__and(mark(z04), z12)), MARK(and(z04, z12))) [1] A__U11(tt, isNat(z05)) -> c2(A__LENGTH(a__isNat(z05)), MARK(isNat(z05))) [1] A__U11(tt, isNatList(z06)) -> c2(A__LENGTH(a__isNatList(z06)), MARK(isNatList(z06))) [1] A__U11(tt, isNatIList(z07)) -> c2(A__LENGTH(a__isNatIList(z07)), MARK(isNatIList(z07))) [1] A__U11(tt, cons(z08, z13)) -> c2(A__LENGTH(cons(mark(z08), z13)), MARK(cons(z08, z13))) [1] A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) [1] A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) [1] A__U11(tt, s(z09)) -> c2(A__LENGTH(s(mark(z09))), MARK(s(z09))) [1] A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) [1] A__U11(tt, z0) -> c2(A__LENGTH(null_mark), MARK(z0)) [1] A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) [1] A__AND(tt, z0) -> c8(MARK(z0)) [1] A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(0, z1)) -> c16(A__AND(tt, isNatIList(z1)), A__ISNAT(0)) [1] A__ISNATILIST(cons(length(z010), z1)) -> c16(A__AND(a__isNatList(z010), isNatIList(z1)), A__ISNAT(length(z010))) [1] A__ISNATILIST(cons(s(z011), z1)) -> c16(A__AND(a__isNat(z011), isNatIList(z1)), A__ISNAT(s(z011))) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(null_a__isNat, isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(0, z1)) -> c19(A__AND(tt, isNatList(z1)), A__ISNAT(0)) [1] A__ISNATLIST(cons(length(z012), z1)) -> c19(A__AND(a__isNatList(z012), isNatList(z1)), A__ISNAT(length(z012))) [1] A__ISNATLIST(cons(s(z013), z1)) -> c19(A__AND(a__isNat(z013), isNatList(z1)), A__ISNAT(s(z013))) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(null_a__isNat, isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(0, z1)) -> c20(A__AND(tt, isNatIList(z1)), A__ISNAT(0)) [1] A__ISNATLIST(take(length(z014), z1)) -> c20(A__AND(a__isNatList(z014), isNatIList(z1)), A__ISNAT(length(z014))) [1] A__ISNATLIST(take(s(z015), z1)) -> c20(A__AND(a__isNat(z015), isNatIList(z1)), A__ISNAT(s(z015))) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(null_a__isNat, isNatIList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, nil)) -> c23(A__U11(a__and(tt, isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, nil)) -> c23(A__U11(a__and(tt, isNat(z0)), nil), A__AND(isNatList(nil), isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, nil)) -> c23(A__U11(a__and(tt, isNat(z0)), nil), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z016, z14))) -> c23(A__U11(a__and(a__and(a__isNat(z016), isNatList(z14)), isNat(z0)), cons(z016, z14)), A__AND(a__and(a__isNat(z016), isNatList(z14)), isNat(z0)), A__ISNATLIST(cons(z016, z14))) [1] A__LENGTH(cons(z0, cons(z016, z14))) -> c23(A__U11(a__and(a__and(a__isNat(z016), isNatList(z14)), isNat(z0)), cons(z016, z14)), A__AND(isNatList(cons(z016, z14)), isNat(z0)), A__ISNATLIST(cons(z016, z14))) [1] A__LENGTH(cons(z0, cons(z016, z14))) -> c23(A__U11(a__and(a__and(a__isNat(z016), isNatList(z14)), isNat(z0)), cons(z016, z14)), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(cons(z016, z14))) [1] A__LENGTH(cons(z0, take(z017, z15))) -> c23(A__U11(a__and(a__and(a__isNat(z017), isNatIList(z15)), isNat(z0)), take(z017, z15)), A__AND(a__and(a__isNat(z017), isNatIList(z15)), isNat(z0)), A__ISNATLIST(take(z017, z15))) [1] A__LENGTH(cons(z0, take(z017, z15))) -> c23(A__U11(a__and(a__and(a__isNat(z017), isNatIList(z15)), isNat(z0)), take(z017, z15)), A__AND(isNatList(take(z017, z15)), isNat(z0)), A__ISNATLIST(take(z017, z15))) [1] A__LENGTH(cons(z0, take(z017, z15))) -> c23(A__U11(a__and(a__and(a__isNat(z017), isNatIList(z15)), isNat(z0)), take(z017, z15)), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(take(z017, z15))) [1] A__LENGTH(cons(z0, nil)) -> c23(A__U11(a__and(isNatList(nil), isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z018, z16))) -> c23(A__U11(a__and(isNatList(cons(z018, z16)), isNat(z0)), cons(z018, z16)), A__AND(a__and(a__isNat(z018), isNatList(z16)), isNat(z0)), A__ISNATLIST(cons(z018, z16))) [1] A__LENGTH(cons(z0, take(z019, z17))) -> c23(A__U11(a__and(isNatList(take(z019, z17)), isNat(z0)), take(z019, z17)), A__AND(a__and(a__isNat(z019), isNatIList(z17)), isNat(z0)), A__ISNATLIST(take(z019, z17))) [1] A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(isNatList(z1), isNat(z0)), z1), A__AND(isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(isNatList(z1), isNat(z0)), z1), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, nil)) -> c23(A__U11(a__and(null_a__isNatList, isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z020, z18))) -> c23(A__U11(a__and(null_a__isNatList, isNat(z0)), cons(z020, z18)), A__AND(a__and(a__isNat(z020), isNatList(z18)), isNat(z0)), A__ISNATLIST(cons(z020, z18))) [1] A__LENGTH(cons(z0, take(z021, z19))) -> c23(A__U11(a__and(null_a__isNatList, isNat(z0)), take(z021, z19)), A__AND(a__and(a__isNat(z021), isNatIList(z19)), isNat(z0)), A__ISNATLIST(take(z021, z19))) [1] A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(null_a__isNatList, isNat(z0)), z1), A__AND(isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, z1)) -> c23(A__U11(a__and(null_a__isNatList, isNat(z0)), z1), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(z1)) [1] 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)) [1] MARK(U11(zeros, z1)) -> c29(A__U11(a__zeros, z1), MARK(zeros)) [1] MARK(U11(U11(z026, z114), z1)) -> c29(A__U11(a__U11(mark(z026), z114), z1), MARK(U11(z026, z114))) [1] MARK(U11(length(z027), z1)) -> c29(A__U11(a__length(mark(z027)), z1), MARK(length(z027))) [1] MARK(U11(U21(z028), z1)) -> c29(A__U11(a__U21(mark(z028)), z1), MARK(U21(z028))) [1] MARK(U11(U31(z029, z115, z2'', z3''), z1)) -> c29(A__U11(a__U31(mark(z029), z115, z2'', z3''), z1), MARK(U31(z029, z115, z2'', z3''))) [1] MARK(U11(take(z030, z116), z1)) -> c29(A__U11(a__take(mark(z030), mark(z116)), z1), MARK(take(z030, z116))) [1] MARK(U11(and(z031, z117), z1)) -> c29(A__U11(a__and(mark(z031), z117), z1), MARK(and(z031, z117))) [1] MARK(U11(isNat(z032), z1)) -> c29(A__U11(a__isNat(z032), z1), MARK(isNat(z032))) [1] MARK(U11(isNatList(z033), z1)) -> c29(A__U11(a__isNatList(z033), z1), MARK(isNatList(z033))) [1] MARK(U11(isNatIList(z034), z1)) -> c29(A__U11(a__isNatIList(z034), z1), MARK(isNatIList(z034))) [1] MARK(U11(cons(z035, z118), z1)) -> c29(A__U11(cons(mark(z035), z118), z1), MARK(cons(z035, z118))) [1] MARK(U11(0, z1)) -> c29(A__U11(0, z1), MARK(0)) [1] MARK(U11(tt, z1)) -> c29(A__U11(tt, z1), MARK(tt)) [1] MARK(U11(s(z036), z1)) -> c29(A__U11(s(mark(z036)), z1), MARK(s(z036))) [1] MARK(U11(nil, z1)) -> c29(A__U11(nil, z1), MARK(nil)) [1] MARK(U11(z0, z1)) -> c29(A__U11(null_mark, z1), MARK(z0)) [1] MARK(length(zeros)) -> c30(A__LENGTH(a__zeros), MARK(zeros)) [1] MARK(length(U11(z037, z119))) -> c30(A__LENGTH(a__U11(mark(z037), z119)), MARK(U11(z037, z119))) [1] MARK(length(length(z038))) -> c30(A__LENGTH(a__length(mark(z038))), MARK(length(z038))) [1] MARK(length(U21(z039))) -> c30(A__LENGTH(a__U21(mark(z039))), MARK(U21(z039))) [1] MARK(length(U31(z040, z120, z21, z31))) -> c30(A__LENGTH(a__U31(mark(z040), z120, z21, z31)), MARK(U31(z040, z120, z21, z31))) [1] MARK(length(take(z041, z121))) -> c30(A__LENGTH(a__take(mark(z041), mark(z121))), MARK(take(z041, z121))) [1] MARK(length(and(z042, z122))) -> c30(A__LENGTH(a__and(mark(z042), z122)), MARK(and(z042, z122))) [1] MARK(length(isNat(z043))) -> c30(A__LENGTH(a__isNat(z043)), MARK(isNat(z043))) [1] MARK(length(isNatList(z044))) -> c30(A__LENGTH(a__isNatList(z044)), MARK(isNatList(z044))) [1] MARK(length(isNatIList(z045))) -> c30(A__LENGTH(a__isNatIList(z045)), MARK(isNatIList(z045))) [1] MARK(length(cons(z046, z123))) -> c30(A__LENGTH(cons(mark(z046), z123)), MARK(cons(z046, z123))) [1] MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) [1] MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) [1] MARK(length(s(z047))) -> c30(A__LENGTH(s(mark(z047))), MARK(s(z047))) [1] MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) [1] MARK(length(z0)) -> c30(A__LENGTH(null_mark), MARK(z0)) [1] MARK(U31(zeros, z1, z2, z3)) -> c32(A__U31(a__zeros, z1, z2, z3), MARK(zeros)) [1] MARK(U31(U11(z048, z124), z1, z2, z3)) -> c32(A__U31(a__U11(mark(z048), z124), z1, z2, z3), MARK(U11(z048, z124))) [1] MARK(U31(length(z049), z1, z2, z3)) -> c32(A__U31(a__length(mark(z049)), z1, z2, z3), MARK(length(z049))) [1] MARK(U31(U21(z050), z1, z2, z3)) -> c32(A__U31(a__U21(mark(z050)), z1, z2, z3), MARK(U21(z050))) [1] MARK(U31(U31(z051, z125, z22, z32), z1, z2, z3)) -> c32(A__U31(a__U31(mark(z051), z125, z22, z32), z1, z2, z3), MARK(U31(z051, z125, z22, z32))) [1] MARK(U31(take(z052, z126), z1, z2, z3)) -> c32(A__U31(a__take(mark(z052), mark(z126)), z1, z2, z3), MARK(take(z052, z126))) [1] MARK(U31(and(z053, z127), z1, z2, z3)) -> c32(A__U31(a__and(mark(z053), z127), z1, z2, z3), MARK(and(z053, z127))) [1] MARK(U31(isNat(z054), z1, z2, z3)) -> c32(A__U31(a__isNat(z054), z1, z2, z3), MARK(isNat(z054))) [1] MARK(U31(isNatList(z055), z1, z2, z3)) -> c32(A__U31(a__isNatList(z055), z1, z2, z3), MARK(isNatList(z055))) [1] MARK(U31(isNatIList(z056), z1, z2, z3)) -> c32(A__U31(a__isNatIList(z056), z1, z2, z3), MARK(isNatIList(z056))) [1] MARK(U31(cons(z057, z128), z1, z2, z3)) -> c32(A__U31(cons(mark(z057), z128), z1, z2, z3), MARK(cons(z057, z128))) [1] MARK(U31(0, z1, z2, z3)) -> c32(A__U31(0, z1, z2, z3), MARK(0)) [1] MARK(U31(tt, z1, z2, z3)) -> c32(A__U31(tt, z1, z2, z3), MARK(tt)) [1] MARK(U31(s(z058), z1, z2, z3)) -> c32(A__U31(s(mark(z058)), z1, z2, z3), MARK(s(z058))) [1] MARK(U31(nil, z1, z2, z3)) -> c32(A__U31(nil, z1, z2, z3), MARK(nil)) [1] MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(null_mark, z1, z2, z3), MARK(z0)) [1] MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(and(zeros, z1)) -> c35(A__AND(a__zeros, z1), MARK(zeros)) [1] MARK(and(U11(z0433, z1199), z1)) -> c35(A__AND(a__U11(mark(z0433), z1199), z1), MARK(U11(z0433, z1199))) [1] MARK(and(length(z0434), z1)) -> c35(A__AND(a__length(mark(z0434)), z1), MARK(length(z0434))) [1] MARK(and(U21(z0435), z1)) -> c35(A__AND(a__U21(mark(z0435)), z1), MARK(U21(z0435))) [1] MARK(and(U31(z0436, z1200, z237, z337), z1)) -> c35(A__AND(a__U31(mark(z0436), z1200, z237, z337), z1), MARK(U31(z0436, z1200, z237, z337))) [1] MARK(and(take(z0437, z1201), z1)) -> c35(A__AND(a__take(mark(z0437), mark(z1201)), z1), MARK(take(z0437, z1201))) [1] MARK(and(and(z0438, z1202), z1)) -> c35(A__AND(a__and(mark(z0438), z1202), z1), MARK(and(z0438, z1202))) [1] MARK(and(isNat(z0439), z1)) -> c35(A__AND(a__isNat(z0439), z1), MARK(isNat(z0439))) [1] MARK(and(isNatList(z0440), z1)) -> c35(A__AND(a__isNatList(z0440), z1), MARK(isNatList(z0440))) [1] MARK(and(isNatIList(z0441), z1)) -> c35(A__AND(a__isNatIList(z0441), z1), MARK(isNatIList(z0441))) [1] MARK(and(cons(z0442, z1203), z1)) -> c35(A__AND(cons(mark(z0442), z1203), z1), MARK(cons(z0442, z1203))) [1] MARK(and(0, z1)) -> c35(A__AND(0, z1), MARK(0)) [1] MARK(and(tt, z1)) -> c35(A__AND(tt, z1), MARK(tt)) [1] MARK(and(s(z0443), z1)) -> c35(A__AND(s(mark(z0443)), z1), MARK(s(z0443))) [1] MARK(and(nil, z1)) -> c35(A__AND(nil, z1), MARK(nil)) [1] MARK(and(z0, z1)) -> c35(A__AND(null_mark, z1), MARK(z0)) [1] MARK(isNat(z0)) -> c36(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c39(MARK(z0)) [1] MARK(s(z0)) -> c42(MARK(z0)) [1] A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) [1] MARK(U21(z0)) -> c31(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, zeros) -> s(a__length(a__zeros)) [0] a__U11(tt, U11(z0444, z1204)) -> s(a__length(a__U11(mark(z0444), z1204))) [0] a__U11(tt, length(z0445)) -> s(a__length(a__length(mark(z0445)))) [0] a__U11(tt, U21(z0446)) -> s(a__length(a__U21(mark(z0446)))) [0] a__U11(tt, U31(z0447, z1205, z238, z338)) -> s(a__length(a__U31(mark(z0447), z1205, z238, z338))) [0] a__U11(tt, take(z0448, z1206)) -> s(a__length(a__take(mark(z0448), mark(z1206)))) [0] a__U11(tt, and(z0449, z1207)) -> s(a__length(a__and(mark(z0449), z1207))) [0] a__U11(tt, isNat(z0450)) -> s(a__length(a__isNat(z0450))) [0] a__U11(tt, isNatList(z0451)) -> s(a__length(a__isNatList(z0451))) [0] a__U11(tt, isNatIList(z0452)) -> s(a__length(a__isNatIList(z0452))) [0] a__U11(tt, cons(z0453, z1208)) -> s(a__length(cons(mark(z0453), z1208))) [0] a__U11(tt, 0) -> s(a__length(0)) [0] a__U11(tt, tt) -> s(a__length(tt)) [0] a__U11(tt, s(z0454)) -> s(a__length(s(mark(z0454)))) [0] a__U11(tt, nil) -> s(a__length(nil)) [0] a__U11(tt, z0) -> s(a__length(null_mark)) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__U21(tt) -> nil [0] a__U21(z0) -> U21(z0) [0] a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) [0] a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(0, z1)) -> a__and(tt, isNatIList(z1)) [0] a__isNatIList(cons(length(z0455), z1)) -> a__and(a__isNatList(z0455), isNatIList(z1)) [0] a__isNatIList(cons(s(z0456), z1)) -> a__and(a__isNat(z0456), isNatIList(z1)) [0] a__isNatIList(cons(z0, z1)) -> a__and(isNat(z0), isNatIList(z1)) [0] a__isNatIList(cons(z0, z1)) -> a__and(null_a__isNat, isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(0, z1)) -> a__and(tt, isNatList(z1)) [0] a__isNatList(cons(length(z0457), z1)) -> a__and(a__isNatList(z0457), isNatList(z1)) [0] a__isNatList(cons(s(z0458), z1)) -> a__and(a__isNat(z0458), isNatList(z1)) [0] a__isNatList(cons(z0, z1)) -> a__and(isNat(z0), isNatList(z1)) [0] a__isNatList(cons(z0, z1)) -> a__and(null_a__isNat, isNatList(z1)) [0] a__isNatList(take(0, z1)) -> a__and(tt, isNatIList(z1)) [0] a__isNatList(take(length(z0459), z1)) -> a__and(a__isNatList(z0459), isNatIList(z1)) [0] a__isNatList(take(s(z0460), z1)) -> a__and(a__isNat(z0460), isNatIList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(isNat(z0), isNatIList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(null_a__isNat, isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, nil)) -> a__U11(a__and(tt, isNat(z0)), nil) [0] a__length(cons(z0, cons(z0461, z1209))) -> a__U11(a__and(a__and(a__isNat(z0461), isNatList(z1209)), isNat(z0)), cons(z0461, z1209)) [0] a__length(cons(z0, take(z0462, z1210))) -> a__U11(a__and(a__and(a__isNat(z0462), isNatIList(z1210)), isNat(z0)), take(z0462, z1210)) [0] a__length(cons(z0, z1)) -> a__U11(a__and(isNatList(z1), isNat(z0)), z1) [0] a__length(cons(z0, z1)) -> a__U11(a__and(null_a__isNatList, isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] a__take(0, z0) -> a__U21(a__isNatList(z0)) [0] a__take(0, zeros) -> a__U21(tt) [0] a__take(0, cons(z0463, z1211)) -> a__U21(a__and(a__isNat(z0463), isNatIList(z1211))) [0] a__take(0, z0) -> a__U21(isNatIList(z0)) [0] a__take(0, z0) -> a__U21(null_a__isNatIList) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(s(z0), cons(z1, zeros)) -> a__U31(a__and(tt, and(isNat(z0), isNat(z1))), zeros, z0, z1) [0] a__take(s(z0), cons(z1, cons(z0464, z1212))) -> a__U31(a__and(a__and(a__isNat(z0464), isNatIList(z1212)), and(isNat(z0), isNat(z1))), cons(z0464, z1212), z0, z1) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(null_a__isNatIList, and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(zeros) -> a__zeros [0] mark(U11(zeros, z1)) -> a__U11(a__zeros, z1) [0] mark(U11(U11(z0465, z1213), z1)) -> a__U11(a__U11(mark(z0465), z1213), z1) [0] mark(U11(length(z0466), z1)) -> a__U11(a__length(mark(z0466)), z1) [0] mark(U11(U21(z0467), z1)) -> a__U11(a__U21(mark(z0467)), z1) [0] mark(U11(U31(z0468, z1214, z239, z339), z1)) -> a__U11(a__U31(mark(z0468), z1214, z239, z339), z1) [0] mark(U11(take(z0469, z1215), z1)) -> a__U11(a__take(mark(z0469), mark(z1215)), z1) [0] mark(U11(and(z0470, z1216), z1)) -> a__U11(a__and(mark(z0470), z1216), z1) [0] mark(U11(isNat(z0471), z1)) -> a__U11(a__isNat(z0471), z1) [0] mark(U11(isNatList(z0472), z1)) -> a__U11(a__isNatList(z0472), z1) [0] mark(U11(isNatIList(z0473), z1)) -> a__U11(a__isNatIList(z0473), z1) [0] mark(U11(cons(z0474, z1217), z1)) -> a__U11(cons(mark(z0474), z1217), z1) [0] mark(U11(0, z1)) -> a__U11(0, z1) [0] mark(U11(tt, z1)) -> a__U11(tt, z1) [0] mark(U11(s(z0475), z1)) -> a__U11(s(mark(z0475)), z1) [0] mark(U11(nil, z1)) -> a__U11(nil, z1) [0] mark(U11(z0, z1)) -> a__U11(null_mark, z1) [0] mark(length(zeros)) -> a__length(a__zeros) [0] mark(length(U11(z0476, z1218))) -> a__length(a__U11(mark(z0476), z1218)) [0] mark(length(length(z0477))) -> a__length(a__length(mark(z0477))) [0] mark(length(U21(z0478))) -> a__length(a__U21(mark(z0478))) [0] mark(length(U31(z0479, z1219, z240, z340))) -> a__length(a__U31(mark(z0479), z1219, z240, z340)) [0] mark(length(take(z0480, z1220))) -> a__length(a__take(mark(z0480), mark(z1220))) [0] mark(length(and(z0481, z1221))) -> a__length(a__and(mark(z0481), z1221)) [0] mark(length(isNat(z0482))) -> a__length(a__isNat(z0482)) [0] mark(length(isNatList(z0483))) -> a__length(a__isNatList(z0483)) [0] mark(length(isNatIList(z0484))) -> a__length(a__isNatIList(z0484)) [0] mark(length(cons(z0485, z1222))) -> a__length(cons(mark(z0485), z1222)) [0] mark(length(0)) -> a__length(0) [0] mark(length(tt)) -> a__length(tt) [0] mark(length(s(z0486))) -> a__length(s(mark(z0486))) [0] mark(length(nil)) -> a__length(nil) [0] mark(length(z0)) -> a__length(null_mark) [0] mark(U21(zeros)) -> a__U21(a__zeros) [0] mark(U21(U11(z0487, z1223))) -> a__U21(a__U11(mark(z0487), z1223)) [0] mark(U21(length(z0488))) -> a__U21(a__length(mark(z0488))) [0] mark(U21(U21(z0489))) -> a__U21(a__U21(mark(z0489))) [0] mark(U21(U31(z0490, z1224, z241, z341))) -> a__U21(a__U31(mark(z0490), z1224, z241, z341)) [0] mark(U21(take(z0491, z1225))) -> a__U21(a__take(mark(z0491), mark(z1225))) [0] mark(U21(and(z0492, z1226))) -> a__U21(a__and(mark(z0492), z1226)) [0] mark(U21(isNat(z0493))) -> a__U21(a__isNat(z0493)) [0] mark(U21(isNatList(z0494))) -> a__U21(a__isNatList(z0494)) [0] mark(U21(isNatIList(z0495))) -> a__U21(a__isNatIList(z0495)) [0] mark(U21(cons(z0496, z1227))) -> a__U21(cons(mark(z0496), z1227)) [0] mark(U21(0)) -> a__U21(0) [0] mark(U21(tt)) -> a__U21(tt) [0] mark(U21(s(z0497))) -> a__U21(s(mark(z0497))) [0] mark(U21(nil)) -> a__U21(nil) [0] mark(U21(z0)) -> a__U21(null_mark) [0] mark(U31(zeros, z1, z2, z3)) -> a__U31(a__zeros, z1, z2, z3) [0] mark(U31(U11(z0498, z1228), z1, z2, z3)) -> a__U31(a__U11(mark(z0498), z1228), z1, z2, z3) [0] mark(U31(length(z0499), z1, z2, z3)) -> a__U31(a__length(mark(z0499)), z1, z2, z3) [0] mark(U31(U21(z0500), z1, z2, z3)) -> a__U31(a__U21(mark(z0500)), z1, z2, z3) [0] mark(U31(U31(z0501, z1229, z242, z342), z1, z2, z3)) -> a__U31(a__U31(mark(z0501), z1229, z242, z342), z1, z2, z3) [0] mark(U31(take(z0502, z1230), z1, z2, z3)) -> a__U31(a__take(mark(z0502), mark(z1230)), z1, z2, z3) [0] mark(U31(and(z0503, z1231), z1, z2, z3)) -> a__U31(a__and(mark(z0503), z1231), z1, z2, z3) [0] mark(U31(isNat(z0504), z1, z2, z3)) -> a__U31(a__isNat(z0504), z1, z2, z3) [0] mark(U31(isNatList(z0505), z1, z2, z3)) -> a__U31(a__isNatList(z0505), z1, z2, z3) [0] mark(U31(isNatIList(z0506), z1, z2, z3)) -> a__U31(a__isNatIList(z0506), z1, z2, z3) [0] mark(U31(cons(z0507, z1232), z1, z2, z3)) -> a__U31(cons(mark(z0507), z1232), z1, z2, z3) [0] mark(U31(0, z1, z2, z3)) -> a__U31(0, z1, z2, z3) [0] mark(U31(tt, z1, z2, z3)) -> a__U31(tt, z1, z2, z3) [0] mark(U31(s(z0508), z1, z2, z3)) -> a__U31(s(mark(z0508)), z1, z2, z3) [0] mark(U31(nil, z1, z2, z3)) -> a__U31(nil, z1, z2, z3) [0] mark(U31(z0, z1, z2, z3)) -> a__U31(null_mark, z1, z2, z3) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(and(zeros, z1)) -> a__and(a__zeros, z1) [0] mark(and(U11(z0696, z1318), z1)) -> a__and(a__U11(mark(z0696), z1318), z1) [0] mark(and(length(z0697), z1)) -> a__and(a__length(mark(z0697)), z1) [0] mark(and(U21(z0698), z1)) -> a__and(a__U21(mark(z0698)), z1) [0] mark(and(U31(z0699, z1319, z260, z360), z1)) -> a__and(a__U31(mark(z0699), z1319, z260, z360), z1) [0] mark(and(take(z0700, z1320), z1)) -> a__and(a__take(mark(z0700), mark(z1320)), z1) [0] mark(and(and(z0701, z1321), z1)) -> a__and(a__and(mark(z0701), z1321), z1) [0] mark(and(isNat(z0702), z1)) -> a__and(a__isNat(z0702), z1) [0] mark(and(isNatList(z0703), z1)) -> a__and(a__isNatList(z0703), z1) [0] mark(and(isNatIList(z0704), z1)) -> a__and(a__isNatIList(z0704), z1) [0] mark(and(cons(z0705, z1322), z1)) -> a__and(cons(mark(z0705), z1322), z1) [0] mark(and(0, z1)) -> a__and(0, z1) [0] mark(and(tt, z1)) -> a__and(tt, z1) [0] mark(and(s(z0706), z1)) -> a__and(s(mark(z0706)), z1) [0] mark(and(nil, z1)) -> a__and(nil, z1) [0] mark(and(z0, z1)) -> a__and(null_mark, z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__U21(v0) -> null_a__U21 [0] a__U31(v0, v1, v2, v3) -> null_a__U31 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c2 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c23 mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 A__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c6 c6 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c6 A__AND :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c8 c8 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c8 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c11:c12 length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c11 :: c19:c20 -> c11:c12 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c19:c20 s :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c12 :: c11:c12 -> c11:c12 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c14:c16 c14 :: c19:c20 -> c14:c16 cons :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c16 :: c8 -> c11:c12 -> c14:c16 a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c19 :: c8 -> c11:c12 -> c19:c20 isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c20 :: c8 -> c11:c12 -> c19:c20 c23 :: c2 -> c8 -> c19:c20 -> c23 a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark A__TAKE :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c26:c25 c26 :: c6 -> c8 -> c14:c16 -> c26:c25 a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c29 :: c2 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c30 :: c23 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c32 :: c6 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c33 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c34 :: c26:c25 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c35 :: c8 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c36 :: c11:c12 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c37 :: c19:c20 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c38 :: c14:c16 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c39 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 c42 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 0 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c25 :: c14:c16 -> c26:c25 U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c31 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark const :: c2 const1 :: c23 const2 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31 const3 :: c6 const4 :: c8 const5 :: c11:c12 const6 :: c19:c20 const7 :: c14:c16 const8 :: c26:c25 Rewrite Strategy: INNERMOST ---------------------------------------- (41) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 null_a__zeros => 0 null_a__U11 => 0 null_a__U21 => 0 null_a__U31 => 0 null_a__and => 0 null_a__isNat => 0 null_a__isNatIList => 0 null_a__isNatList => 0 null_a__length => 0 null_a__take => 0 null_mark => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 const4 => 0 const5 => 0 const6 => 0 const7 => 0 const8 => 0 ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z011), 1 + z1) + A__ISNAT(1 + z011) :|: z011 >= 0, z1 >= 0, z = 1 + (1 + z011) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z012), 1 + z1) + A__ISNAT(1 + z012) :|: z1 >= 0, z = 1 + (1 + z012) + z1, z012 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z014), 1 + z1) + A__ISNAT(1 + z014) :|: z = 1 + (1 + z014) + z1, z1 >= 0, z014 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z013), 1 + z1) + A__ISNAT(1 + z013) :|: z1 >= 0, z013 >= 0, z = 1 + (1 + z013) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z015), 1 + z1) + A__ISNAT(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(a__and(a__isNat(z016), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(1 + (1 + z016 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(a__and(a__isNat(z017), 1 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(1 + (1 + z017 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(0, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(1 + 1, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z020 + z18) + A__AND(a__and(a__isNat(z020), 1 + z18), 1 + z0) + A__ISNATLIST(1 + z020 + z18) :|: z = 1 + z0 + (1 + z020 + z18), z18 >= 0, z0 >= 0, z020 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z021 + z19) + A__AND(a__and(a__isNat(z021), 1 + z19), 1 + z0) + A__ISNATLIST(1 + z021 + z19) :|: z021 >= 0, z19 >= 0, z = 1 + z0 + (1 + z021 + z19), z0 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z018 + z16), 1 + z0), 1 + z018 + z16) + A__AND(a__and(a__isNat(z018), 1 + z16), 1 + z0) + A__ISNATLIST(1 + z018 + z16) :|: z = 1 + z0 + (1 + z018 + z16), z0 >= 0, z16 >= 0, z018 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z019 + z17), 1 + z0), 1 + z019 + z17) + A__AND(a__and(a__isNat(z019), 1 + z17), 1 + z0) + A__ISNATLIST(1 + z019 + z17) :|: z019 >= 0, z = 1 + z0 + (1 + z019 + z17), z17 >= 0, z0 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z0 >= 0, z = 0, z' = z0 A__TAKE(z, z') -{ 1 }-> 1 + A__U31(a__and(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) + A__AND(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)) + A__ISNATILIST(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__zeros) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__take(mark(z03), mark(z11))) + MARK(1 + z03 + z11) :|: z = 2, z11 >= 0, z03 >= 0, z' = 1 + z03 + z11 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z0''))) + MARK(1 + z0'') :|: z = 2, z' = 1 + z0'', z0'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z06)) + MARK(1 + z06) :|: z = 2, z06 >= 0, z' = 1 + z06 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z07)) + MARK(1 + z07) :|: z = 2, z07 >= 0, z' = 1 + z07 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z05)) + MARK(1 + z05) :|: z = 2, z05 >= 0, z' = 1 + z05 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z04), z12)) + MARK(1 + z04 + z12) :|: z = 2, z04 >= 0, z' = 1 + z04 + z12, z12 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z02), z1'', z2', z3')) + MARK(1 + z02 + z1'' + z2' + z3') :|: z = 2, z3' >= 0, z02 >= 0, z2' >= 0, z' = 1 + z02 + z1'' + z2' + z3', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z01))) + MARK(1 + z01) :|: z = 2, z01 >= 0, z' = 1 + z01 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z09)) + MARK(1 + z09) :|: z = 2, z' = 1 + z09, z09 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z08) + z13) + MARK(1 + z08 + z13) :|: z = 2, z' = 1 + z08 + z13, z08 >= 0, z13 >= 0 A__U31(z, z', z'', z4) -{ 1 }-> 1 + MARK(z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__zeros, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__take(mark(z052), mark(z126)), z1, z2, z3) + MARK(1 + z052 + z126) :|: z = 1 + (1 + z052 + z126) + z1 + z2 + z3, z052 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z126 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__length(mark(z049)), z1, z2, z3) + MARK(1 + z049) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatList(z055), z1, z2, z3) + MARK(1 + z055) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatIList(z056), z1, z2, z3) + MARK(1 + z056) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNat(z054), z1, z2, z3) + MARK(1 + z054) :|: z1 >= 0, z054 >= 0, z = 1 + (1 + z054) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__and(mark(z053), z127), z1, z2, z3) + MARK(1 + z053 + z127) :|: z1 >= 0, z053 >= 0, z = 1 + (1 + z053 + z127) + z1 + z2 + z3, z127 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U31(mark(z051), z125, z22, z32), z1, z2, z3) + MARK(1 + z051 + z125 + z22 + z32) :|: z32 >= 0, z1 >= 0, z = 1 + (1 + z051 + z125 + z22 + z32) + z1 + z2 + z3, z051 >= 0, z22 >= 0, z125 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U21(mark(z050)), z1, z2, z3) + MARK(1 + z050) :|: z1 >= 0, z = 1 + (1 + z050) + z1 + z2 + z3, z050 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U11(mark(z048), z124), z1, z2, z3) + MARK(1 + z048 + z124) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z048 + z124) + z1 + z2 + z3, z048 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(2, z1, z2, z3) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1, z1, z2, z3) + MARK(1) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z058), z1, z2, z3) + MARK(1 + z058) :|: z1 >= 0, z = 1 + (1 + z058) + z1 + z2 + z3, z058 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z057) + z128, z1, z2, z3) + MARK(1 + z057 + z128) :|: z1 >= 0, z128 >= 0, z = 1 + (1 + z057 + z128) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z057 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__zeros, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__take(mark(z030), mark(z116)), z1) + MARK(1 + z030 + z116) :|: z1 >= 0, z = 1 + (1 + z030 + z116) + z1, z030 >= 0, z116 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z027)), z1) + MARK(1 + z027) :|: z = 1 + (1 + z027) + z1, z1 >= 0, z027 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z032), z1) + MARK(1 + z032) :|: z032 >= 0, z1 >= 0, z = 1 + (1 + z032) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z031), z117), z1) + MARK(1 + z031 + z117) :|: z = 1 + (1 + z031 + z117) + z1, z117 >= 0, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U31(mark(z029), z115, z2'', z3''), z1) + MARK(1 + z029 + z115 + z2'' + z3'') :|: z029 >= 0, z1 >= 0, z = 1 + (1 + z029 + z115 + z2'' + z3'') + z1, z115 >= 0, z3'' >= 0, z2'' >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U21(mark(z028)), z1) + MARK(1 + z028) :|: z1 >= 0, z = 1 + (1 + z028) + z1, z028 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z026), z114), z1) + MARK(1 + z026 + z114) :|: z = 1 + (1 + z026 + z114) + z1, z114 >= 0, z1 >= 0, z026 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z036), z1) + MARK(1 + z036) :|: z036 >= 0, z1 >= 0, z = 1 + (1 + z036) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z035) + z118, z1) + MARK(1 + z035 + z118) :|: z035 >= 0, z1 >= 0, z118 >= 0, z = 1 + (1 + z035 + z118) + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__zeros) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__take(mark(z041), mark(z121))) + MARK(1 + z041 + z121) :|: z = 1 + (1 + z041 + z121), z121 >= 0, z041 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z038))) + MARK(1 + z038) :|: z = 1 + (1 + z038), z038 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z044)) + MARK(1 + z044) :|: z044 >= 0, z = 1 + (1 + z044) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z045)) + MARK(1 + z045) :|: z045 >= 0, z = 1 + (1 + z045) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z043)) + MARK(1 + z043) :|: z043 >= 0, z = 1 + (1 + z043) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z042), z122)) + MARK(1 + z042 + z122) :|: z042 >= 0, z = 1 + (1 + z042 + z122), z122 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z040), z120, z21, z31)) + MARK(1 + z040 + z120 + z21 + z31) :|: z120 >= 0, z21 >= 0, z31 >= 0, z040 >= 0, z = 1 + (1 + z040 + z120 + z21 + z31) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z039))) + MARK(1 + z039) :|: z = 1 + (1 + z039), z039 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z037), z119)) + MARK(1 + z037 + z119) :|: z = 1 + (1 + z037 + z119), z119 >= 0, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z047)) + MARK(1 + z047) :|: z = 1 + (1 + z047), z047 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z046) + z123) + MARK(1 + z046 + z123) :|: z046 >= 0, z123 >= 0, z = 1 + (1 + z046 + z123) MARK(z) -{ 1 }-> 1 + A__AND(a__zeros, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__take(mark(z0437), mark(z1201)), z1) + MARK(1 + z0437 + z1201) :|: z0437 >= 0, z1201 >= 0, z1 >= 0, z = 1 + (1 + z0437 + z1201) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z0434)), z1) + MARK(1 + z0434) :|: z1 >= 0, z0434 >= 0, z = 1 + (1 + z0434) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z0440), z1) + MARK(1 + z0440) :|: z1 >= 0, z0440 >= 0, z = 1 + (1 + z0440) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z0441), z1) + MARK(1 + z0441) :|: z1 >= 0, z0441 >= 0, z = 1 + (1 + z0441) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z0439), z1) + MARK(1 + z0439) :|: z1 >= 0, z0439 >= 0, z = 1 + (1 + z0439) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z0438), z1202), z1) + MARK(1 + z0438 + z1202) :|: z1202 >= 0, z1 >= 0, z0438 >= 0, z = 1 + (1 + z0438 + z1202) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U31(mark(z0436), z1200, z237, z337), z1) + MARK(1 + z0436 + z1200 + z237 + z337) :|: z1 >= 0, z237 >= 0, z337 >= 0, z = 1 + (1 + z0436 + z1200 + z237 + z337) + z1, z0436 >= 0, z1200 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U21(mark(z0435)), z1) + MARK(1 + z0435) :|: z1 >= 0, z = 1 + (1 + z0435) + z1, z0435 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z0433), z1199), z1) + MARK(1 + z0433 + z1199) :|: z0433 >= 0, z1 >= 0, z = 1 + (1 + z0433 + z1199) + z1, z1199 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0443), z1) + MARK(1 + z0443) :|: z0443 >= 0, z1 >= 0, z = 1 + (1 + z0443) + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0442) + z1203, z1) + MARK(1 + z0442 + z1203) :|: z1 >= 0, z1203 >= 0, z = 1 + (1 + z0442 + z1203) + z1, z0442 >= 0 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(a__take(mark(z0448), mark(z1206))) :|: z = 2, z1206 >= 0, z0448 >= 0, z' = 1 + z0448 + z1206 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z0445))) :|: z = 2, z' = 1 + z0445, z0445 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z0451)) :|: z = 2, z' = 1 + z0451, z0451 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z0452)) :|: z = 2, z' = 1 + z0452, z0452 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z0450)) :|: z = 2, z0450 >= 0, z' = 1 + z0450 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z0449), z1207)) :|: z = 2, z' = 1 + z0449 + z1207, z0449 >= 0, z1207 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U31(mark(z0447), z1205, z238, z338)) :|: z = 2, z0447 >= 0, z' = 1 + z0447 + z1205 + z238 + z338, z1205 >= 0, z238 >= 0, z338 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U21(mark(z0446))) :|: z = 2, z' = 1 + z0446, z0446 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z0444), z1204)) :|: z = 2, z0444 >= 0, z1204 >= 0, z' = 1 + z0444 + z1204 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z0454)) :|: z = 2, z0454 >= 0, z' = 1 + z0454 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z0453) + z1208) :|: z = 2, z' = 1 + z0453 + z1208, z0453 >= 0, z1208 >= 0 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__U21(z) -{ 0 }-> 1 :|: z = 2 a__U21(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__U21(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 1 + mark(z2) + (1 + z1 + z0) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 a__U31(z, z', z'', z4) -{ 0 }-> 1 + z0 + z1 + z2 + z3 :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z4 = z3, z2 >= 0, z3 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z0455), 1 + z1) :|: z1 >= 0, z0455 >= 0, z = 1 + (1 + z0455) + z1 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z0456), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0456) + z1, z0456 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0457), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0457) + z1, z0457 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0459), 1 + z1) :|: z = 1 + (1 + z0459) + z1, z1 >= 0, z0459 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0458), 1 + z1) :|: z1 >= 0, z0458 >= 0, z = 1 + (1 + z0458) + z1 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0460), 1 + z1) :|: z1 >= 0, z0460 >= 0, z = 1 + (1 + z0460) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0461), 1 + z1209), 1 + z0), 1 + z0461 + z1209) :|: z1209 >= 0, z0 >= 0, z = 1 + z0 + (1 + z0461 + z1209), z0461 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0462), 1 + z1210), 1 + z0), 1 + z0462 + z1210) :|: z = 1 + z0 + (1 + z0462 + z1210), z1210 >= 0, z0 >= 0, z0462 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + z0), 1) :|: z0 >= 0, z = 1 + z0 + 1 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__isNatList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__and(a__isNat(z0464), 1 + z1212), 1 + (1 + z0) + (1 + z1)), 1 + z0464 + z1212, z0, z1) :|: z1212 >= 0, z1 >= 0, z0464 >= 0, z = 1 + z0, z' = 1 + z1 + (1 + z0464 + z1212), z0 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(2, 1 + (1 + z0) + (1 + z1)), 3, z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 + 3 a__take(z, z') -{ 0 }-> a__U31(a__and(0, 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(1 + z2, 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U21(a__isNatList(z0)) :|: z0 >= 0, z = 0, z' = z0 a__take(z, z') -{ 0 }-> a__U21(a__and(a__isNat(z0463), 1 + z1211)) :|: z1211 >= 0, z = 0, z' = 1 + z0463 + z1211, z0463 >= 0 a__take(z, z') -{ 0 }-> a__U21(2) :|: z' = 3, z = 0 a__take(z, z') -{ 0 }-> a__U21(0) :|: z0 >= 0, z = 0, z' = z0 a__take(z, z') -{ 0 }-> a__U21(1 + z0) :|: z0 >= 0, z = 0, z' = z0 a__take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__take(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__zeros :|: z = 3 mark(z) -{ 0 }-> a__take(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__length(a__zeros) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(a__take(mark(z0480), mark(z1220))) :|: z = 1 + (1 + z0480 + z1220), z0480 >= 0, z1220 >= 0 mark(z) -{ 0 }-> a__length(a__length(mark(z0477))) :|: z = 1 + (1 + z0477), z0477 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z0483)) :|: z0483 >= 0, z = 1 + (1 + z0483) mark(z) -{ 0 }-> a__length(a__isNatIList(z0484)) :|: z0484 >= 0, z = 1 + (1 + z0484) mark(z) -{ 0 }-> a__length(a__isNat(z0482)) :|: z = 1 + (1 + z0482), z0482 >= 0 mark(z) -{ 0 }-> a__length(a__and(mark(z0481), z1221)) :|: z0481 >= 0, z = 1 + (1 + z0481 + z1221), z1221 >= 0 mark(z) -{ 0 }-> a__length(a__U31(mark(z0479), z1219, z240, z340)) :|: z240 >= 0, z = 1 + (1 + z0479 + z1219 + z240 + z340), z340 >= 0, z1219 >= 0, z0479 >= 0 mark(z) -{ 0 }-> a__length(a__U21(mark(z0478))) :|: z = 1 + (1 + z0478), z0478 >= 0 mark(z) -{ 0 }-> a__length(a__U11(mark(z0476), z1218)) :|: z0476 >= 0, z1218 >= 0, z = 1 + (1 + z0476 + z1218) mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z0486)) :|: z = 1 + (1 + z0486), z0486 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z0485) + z1222) :|: z0485 >= 0, z1222 >= 0, z = 1 + (1 + z0485 + z1222) mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(a__zeros, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(a__take(mark(z0700), mark(z1320)), z1) :|: z1 >= 0, z = 1 + (1 + z0700 + z1320) + z1, z0700 >= 0, z1320 >= 0 mark(z) -{ 0 }-> a__and(a__length(mark(z0697)), z1) :|: z = 1 + (1 + z0697) + z1, z1 >= 0, z0697 >= 0 mark(z) -{ 0 }-> a__and(a__isNatList(z0703), z1) :|: z1 >= 0, z0703 >= 0, z = 1 + (1 + z0703) + z1 mark(z) -{ 0 }-> a__and(a__isNatIList(z0704), z1) :|: z1 >= 0, z = 1 + (1 + z0704) + z1, z0704 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z0702), z1) :|: z0702 >= 0, z1 >= 0, z = 1 + (1 + z0702) + z1 mark(z) -{ 0 }-> a__and(a__and(mark(z0701), z1321), z1) :|: z = 1 + (1 + z0701 + z1321) + z1, z1321 >= 0, z1 >= 0, z0701 >= 0 mark(z) -{ 0 }-> a__and(a__U31(mark(z0699), z1319, z260, z360), z1) :|: z1319 >= 0, z1 >= 0, z260 >= 0, z360 >= 0, z = 1 + (1 + z0699 + z1319 + z260 + z360) + z1, z0699 >= 0 mark(z) -{ 0 }-> a__and(a__U21(mark(z0698)), z1) :|: z1 >= 0, z0698 >= 0, z = 1 + (1 + z0698) + z1 mark(z) -{ 0 }-> a__and(a__U11(mark(z0696), z1318), z1) :|: z1 >= 0, z1318 >= 0, z = 1 + (1 + z0696 + z1318) + z1, z0696 >= 0 mark(z) -{ 0 }-> a__and(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__and(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(1 + mark(z0706), z1) :|: z0706 >= 0, z1 >= 0, z = 1 + (1 + z0706) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z0705) + z1322, z1) :|: z1 >= 0, z = 1 + (1 + z0705 + z1322) + z1, z1322 >= 0, z0705 >= 0 mark(z) -{ 0 }-> a__U31(a__zeros, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__take(mark(z0502), mark(z1230)), z1, z2, z3) :|: z1 >= 0, z0502 >= 0, z1230 >= 0, z = 1 + (1 + z0502 + z1230) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__length(mark(z0499)), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0499) + z1 + z2 + z3, z0499 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatList(z0505), z1, z2, z3) :|: z1 >= 0, z0505 >= 0, z = 1 + (1 + z0505) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatIList(z0506), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0506) + z1 + z2 + z3, z0506 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNat(z0504), z1, z2, z3) :|: z0504 >= 0, z1 >= 0, z = 1 + (1 + z0504) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__and(mark(z0503), z1231), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0503 + z1231) + z1 + z2 + z3, z1231 >= 0, z0503 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U31(mark(z0501), z1229, z242, z342), z1, z2, z3) :|: z1 >= 0, z342 >= 0, z242 >= 0, z1229 >= 0, z = 1 + (1 + z0501 + z1229 + z242 + z342) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z0501 >= 0 mark(z) -{ 0 }-> a__U31(a__U21(mark(z0500)), z1, z2, z3) :|: z0500 >= 0, z1 >= 0, z = 1 + (1 + z0500) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U11(mark(z0498), z1228), z1, z2, z3) :|: z1 >= 0, z0498 >= 0, z = 1 + (1 + z0498 + z1228) + z1 + z2 + z3, z1228 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(2, z1, z2, z3) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1, z1, z2, z3) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1 + mark(z0508), z1, z2, z3) :|: z0508 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z = 1 + (1 + z0508) + z1 + z2 + z3 mark(z) -{ 0 }-> a__U31(1 + mark(z0507) + z1232, z1, z2, z3) :|: z = 1 + (1 + z0507 + z1232) + z1 + z2 + z3, z1 >= 0, z1232 >= 0, z0507 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U21(a__zeros) :|: z = 1 + 3 mark(z) -{ 0 }-> a__U21(a__take(mark(z0491), mark(z1225))) :|: z = 1 + (1 + z0491 + z1225), z1225 >= 0, z0491 >= 0 mark(z) -{ 0 }-> a__U21(a__length(mark(z0488))) :|: z = 1 + (1 + z0488), z0488 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatList(z0494)) :|: z = 1 + (1 + z0494), z0494 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatIList(z0495)) :|: z = 1 + (1 + z0495), z0495 >= 0 mark(z) -{ 0 }-> a__U21(a__isNat(z0493)) :|: z = 1 + (1 + z0493), z0493 >= 0 mark(z) -{ 0 }-> a__U21(a__and(mark(z0492), z1226)) :|: z1226 >= 0, z = 1 + (1 + z0492 + z1226), z0492 >= 0 mark(z) -{ 0 }-> a__U21(a__U31(mark(z0490), z1224, z241, z341)) :|: z1224 >= 0, z241 >= 0, z341 >= 0, z = 1 + (1 + z0490 + z1224 + z241 + z341), z0490 >= 0 mark(z) -{ 0 }-> a__U21(a__U21(mark(z0489))) :|: z0489 >= 0, z = 1 + (1 + z0489) mark(z) -{ 0 }-> a__U21(a__U11(mark(z0487), z1223)) :|: z = 1 + (1 + z0487 + z1223), z1223 >= 0, z0487 >= 0 mark(z) -{ 0 }-> a__U21(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__U21(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__U21(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__U21(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z0497)) :|: z = 1 + (1 + z0497), z0497 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z0496) + z1227) :|: z = 1 + (1 + z0496 + z1227), z0496 >= 0, z1227 >= 0 mark(z) -{ 0 }-> a__U11(a__zeros, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(a__take(mark(z0469), mark(z1215)), z1) :|: z = 1 + (1 + z0469 + z1215) + z1, z1 >= 0, z1215 >= 0, z0469 >= 0 mark(z) -{ 0 }-> a__U11(a__length(mark(z0466)), z1) :|: z1 >= 0, z0466 >= 0, z = 1 + (1 + z0466) + z1 mark(z) -{ 0 }-> a__U11(a__isNatList(z0472), z1) :|: z1 >= 0, z = 1 + (1 + z0472) + z1, z0472 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatIList(z0473), z1) :|: z = 1 + (1 + z0473) + z1, z1 >= 0, z0473 >= 0 mark(z) -{ 0 }-> a__U11(a__isNat(z0471), z1) :|: z = 1 + (1 + z0471) + z1, z0471 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z0470), z1216), z1) :|: z1216 >= 0, z1 >= 0, z0470 >= 0, z = 1 + (1 + z0470 + z1216) + z1 mark(z) -{ 0 }-> a__U11(a__U31(mark(z0468), z1214, z239, z339), z1) :|: z1 >= 0, z0468 >= 0, z339 >= 0, z = 1 + (1 + z0468 + z1214 + z239 + z339) + z1, z239 >= 0, z1214 >= 0 mark(z) -{ 0 }-> a__U11(a__U21(mark(z0467)), z1) :|: z = 1 + (1 + z0467) + z1, z1 >= 0, z0467 >= 0 mark(z) -{ 0 }-> a__U11(a__U11(mark(z0465), z1213), z1) :|: z1 >= 0, z = 1 + (1 + z0465 + z1213) + z1, z1213 >= 0, z0465 >= 0 mark(z) -{ 0 }-> a__U11(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__U11(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z0475), z1) :|: z0475 >= 0, z1 >= 0, z = 1 + (1 + z0475) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z0474) + z1217, z1) :|: z1 >= 0, z0474 >= 0, z1217 >= 0, z = 1 + (1 + z0474 + z1217) + z1 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (43) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: a__U21(z) -{ 0 }-> 1 :|: z = 2 a__U21(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__U21(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z011), 1 + z1) + A__ISNAT(1 + z011) :|: z011 >= 0, z1 >= 0, z = 1 + (1 + z011) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z012), 1 + z1) + A__ISNAT(1 + z012) :|: z1 >= 0, z = 1 + (1 + z012) + z1, z012 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z014), 1 + z1) + A__ISNAT(1 + z014) :|: z = 1 + (1 + z014) + z1, z1 >= 0, z014 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z013), 1 + z1) + A__ISNAT(1 + z013) :|: z1 >= 0, z013 >= 0, z = 1 + (1 + z013) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z015), 1 + z1) + A__ISNAT(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(a__and(a__isNat(z016), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(1 + (1 + z016 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(a__and(a__isNat(z017), 1 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(1 + (1 + z017 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(0, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(1 + 1, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z020 + z18) + A__AND(a__and(a__isNat(z020), 1 + z18), 1 + z0) + A__ISNATLIST(1 + z020 + z18) :|: z = 1 + z0 + (1 + z020 + z18), z18 >= 0, z0 >= 0, z020 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z021 + z19) + A__AND(a__and(a__isNat(z021), 1 + z19), 1 + z0) + A__ISNATLIST(1 + z021 + z19) :|: z021 >= 0, z19 >= 0, z = 1 + z0 + (1 + z021 + z19), z0 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z018 + z16), 1 + z0), 1 + z018 + z16) + A__AND(a__and(a__isNat(z018), 1 + z16), 1 + z0) + A__ISNATLIST(1 + z018 + z16) :|: z = 1 + z0 + (1 + z018 + z16), z0 >= 0, z16 >= 0, z018 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z019 + z17), 1 + z0), 1 + z019 + z17) + A__AND(a__and(a__isNat(z019), 1 + z17), 1 + z0) + A__ISNATLIST(1 + z019 + z17) :|: z019 >= 0, z = 1 + z0 + (1 + z019 + z17), z17 >= 0, z0 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z0 >= 0, z = 0, z' = z0 A__TAKE(z, z') -{ 1 }-> 1 + A__U31(a__and(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) + A__AND(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)) + A__ISNATILIST(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__take(mark(z03), mark(z11))) + MARK(1 + z03 + z11) :|: z = 2, z11 >= 0, z03 >= 0, z' = 1 + z03 + z11 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z0''))) + MARK(1 + z0'') :|: z = 2, z' = 1 + z0'', z0'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z06)) + MARK(1 + z06) :|: z = 2, z06 >= 0, z' = 1 + z06 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z07)) + MARK(1 + z07) :|: z = 2, z07 >= 0, z' = 1 + z07 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z05)) + MARK(1 + z05) :|: z = 2, z05 >= 0, z' = 1 + z05 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z04), z12)) + MARK(1 + z04 + z12) :|: z = 2, z04 >= 0, z' = 1 + z04 + z12, z12 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z02), z1'', z2', z3')) + MARK(1 + z02 + z1'' + z2' + z3') :|: z = 2, z3' >= 0, z02 >= 0, z2' >= 0, z' = 1 + z02 + z1'' + z2' + z3', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z01))) + MARK(1 + z01) :|: z = 2, z01 >= 0, z' = 1 + z01 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z09)) + MARK(1 + z09) :|: z = 2, z' = 1 + z09, z09 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z08) + z13) + MARK(1 + z08 + z13) :|: z = 2, z' = 1 + z08 + z13, z08 >= 0, z13 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 2, z' = 3 A__U31(z, z', z'', z4) -{ 1 }-> 1 + MARK(z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__take(mark(z052), mark(z126)), z1, z2, z3) + MARK(1 + z052 + z126) :|: z = 1 + (1 + z052 + z126) + z1 + z2 + z3, z052 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z126 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__length(mark(z049)), z1, z2, z3) + MARK(1 + z049) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatList(z055), z1, z2, z3) + MARK(1 + z055) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatIList(z056), z1, z2, z3) + MARK(1 + z056) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNat(z054), z1, z2, z3) + MARK(1 + z054) :|: z1 >= 0, z054 >= 0, z = 1 + (1 + z054) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__and(mark(z053), z127), z1, z2, z3) + MARK(1 + z053 + z127) :|: z1 >= 0, z053 >= 0, z = 1 + (1 + z053 + z127) + z1 + z2 + z3, z127 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U31(mark(z051), z125, z22, z32), z1, z2, z3) + MARK(1 + z051 + z125 + z22 + z32) :|: z32 >= 0, z1 >= 0, z = 1 + (1 + z051 + z125 + z22 + z32) + z1 + z2 + z3, z051 >= 0, z22 >= 0, z125 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U21(mark(z050)), z1, z2, z3) + MARK(1 + z050) :|: z1 >= 0, z = 1 + (1 + z050) + z1 + z2 + z3, z050 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U11(mark(z048), z124), z1, z2, z3) + MARK(1 + z048 + z124) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z048 + z124) + z1 + z2 + z3, z048 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(3, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(2, z1, z2, z3) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1, z1, z2, z3) + MARK(1) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z058), z1, z2, z3) + MARK(1 + z058) :|: z1 >= 0, z = 1 + (1 + z058) + z1 + z2 + z3, z058 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z057) + z128, z1, z2, z3) + MARK(1 + z057 + z128) :|: z1 >= 0, z128 >= 0, z = 1 + (1 + z057 + z128) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z057 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + 0 + 3, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__take(mark(z030), mark(z116)), z1) + MARK(1 + z030 + z116) :|: z1 >= 0, z = 1 + (1 + z030 + z116) + z1, z030 >= 0, z116 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z027)), z1) + MARK(1 + z027) :|: z = 1 + (1 + z027) + z1, z1 >= 0, z027 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z032), z1) + MARK(1 + z032) :|: z032 >= 0, z1 >= 0, z = 1 + (1 + z032) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z031), z117), z1) + MARK(1 + z031 + z117) :|: z = 1 + (1 + z031 + z117) + z1, z117 >= 0, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U31(mark(z029), z115, z2'', z3''), z1) + MARK(1 + z029 + z115 + z2'' + z3'') :|: z029 >= 0, z1 >= 0, z = 1 + (1 + z029 + z115 + z2'' + z3'') + z1, z115 >= 0, z3'' >= 0, z2'' >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U21(mark(z028)), z1) + MARK(1 + z028) :|: z1 >= 0, z = 1 + (1 + z028) + z1, z028 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z026), z114), z1) + MARK(1 + z026 + z114) :|: z = 1 + (1 + z026 + z114) + z1, z114 >= 0, z1 >= 0, z026 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z036), z1) + MARK(1 + z036) :|: z036 >= 0, z1 >= 0, z = 1 + (1 + z036) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z035) + z118, z1) + MARK(1 + z035 + z118) :|: z035 >= 0, z1 >= 0, z118 >= 0, z = 1 + (1 + z035 + z118) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + 0 + 3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__take(mark(z041), mark(z121))) + MARK(1 + z041 + z121) :|: z = 1 + (1 + z041 + z121), z121 >= 0, z041 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z038))) + MARK(1 + z038) :|: z = 1 + (1 + z038), z038 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z044)) + MARK(1 + z044) :|: z044 >= 0, z = 1 + (1 + z044) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z045)) + MARK(1 + z045) :|: z045 >= 0, z = 1 + (1 + z045) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z043)) + MARK(1 + z043) :|: z043 >= 0, z = 1 + (1 + z043) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z042), z122)) + MARK(1 + z042 + z122) :|: z042 >= 0, z = 1 + (1 + z042 + z122), z122 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z040), z120, z21, z31)) + MARK(1 + z040 + z120 + z21 + z31) :|: z120 >= 0, z21 >= 0, z31 >= 0, z040 >= 0, z = 1 + (1 + z040 + z120 + z21 + z31) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z039))) + MARK(1 + z039) :|: z = 1 + (1 + z039), z039 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z037), z119)) + MARK(1 + z037 + z119) :|: z = 1 + (1 + z037 + z119), z119 >= 0, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z047)) + MARK(1 + z047) :|: z = 1 + (1 + z047), z047 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z046) + z123) + MARK(1 + z046 + z123) :|: z046 >= 0, z123 >= 0, z = 1 + (1 + z046 + z123) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__AND(a__take(mark(z0437), mark(z1201)), z1) + MARK(1 + z0437 + z1201) :|: z0437 >= 0, z1201 >= 0, z1 >= 0, z = 1 + (1 + z0437 + z1201) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z0434)), z1) + MARK(1 + z0434) :|: z1 >= 0, z0434 >= 0, z = 1 + (1 + z0434) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z0440), z1) + MARK(1 + z0440) :|: z1 >= 0, z0440 >= 0, z = 1 + (1 + z0440) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z0441), z1) + MARK(1 + z0441) :|: z1 >= 0, z0441 >= 0, z = 1 + (1 + z0441) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z0439), z1) + MARK(1 + z0439) :|: z1 >= 0, z0439 >= 0, z = 1 + (1 + z0439) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z0438), z1202), z1) + MARK(1 + z0438 + z1202) :|: z1202 >= 0, z1 >= 0, z0438 >= 0, z = 1 + (1 + z0438 + z1202) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U31(mark(z0436), z1200, z237, z337), z1) + MARK(1 + z0436 + z1200 + z237 + z337) :|: z1 >= 0, z237 >= 0, z337 >= 0, z = 1 + (1 + z0436 + z1200 + z237 + z337) + z1, z0436 >= 0, z1200 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U21(mark(z0435)), z1) + MARK(1 + z0435) :|: z1 >= 0, z = 1 + (1 + z0435) + z1, z0435 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z0433), z1199), z1) + MARK(1 + z0433 + z1199) :|: z0433 >= 0, z1 >= 0, z = 1 + (1 + z0433 + z1199) + z1, z1199 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0443), z1) + MARK(1 + z0443) :|: z0443 >= 0, z1 >= 0, z = 1 + (1 + z0443) + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0442) + z1203, z1) + MARK(1 + z0442 + z1203) :|: z1 >= 0, z1203 >= 0, z = 1 + (1 + z0442 + z1203) + z1, z0442 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + 0 + 3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(a__take(mark(z0448), mark(z1206))) :|: z = 2, z1206 >= 0, z0448 >= 0, z' = 1 + z0448 + z1206 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z0445))) :|: z = 2, z' = 1 + z0445, z0445 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z0451)) :|: z = 2, z' = 1 + z0451, z0451 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z0452)) :|: z = 2, z' = 1 + z0452, z0452 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z0450)) :|: z = 2, z0450 >= 0, z' = 1 + z0450 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z0449), z1207)) :|: z = 2, z' = 1 + z0449 + z1207, z0449 >= 0, z1207 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U31(mark(z0447), z1205, z238, z338)) :|: z = 2, z0447 >= 0, z' = 1 + z0447 + z1205 + z238 + z338, z1205 >= 0, z238 >= 0, z338 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U21(mark(z0446))) :|: z = 2, z' = 1 + z0446, z0446 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z0444), z1204)) :|: z = 2, z0444 >= 0, z1204 >= 0, z' = 1 + z0444 + z1204 a__U11(z, z') -{ 0 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z0454)) :|: z = 2, z0454 >= 0, z' = 1 + z0454 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z0453) + z1208) :|: z = 2, z' = 1 + z0453 + z1208, z0453 >= 0, z1208 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__U21(z) -{ 0 }-> 1 :|: z = 2 a__U21(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__U21(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 1 + mark(z2) + (1 + z1 + z0) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 a__U31(z, z', z'', z4) -{ 0 }-> 1 + z0 + z1 + z2 + z3 :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z4 = z3, z2 >= 0, z3 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z0455), 1 + z1) :|: z1 >= 0, z0455 >= 0, z = 1 + (1 + z0455) + z1 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z0456), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0456) + z1, z0456 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0457), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0457) + z1, z0457 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0459), 1 + z1) :|: z = 1 + (1 + z0459) + z1, z1 >= 0, z0459 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0458), 1 + z1) :|: z1 >= 0, z0458 >= 0, z = 1 + (1 + z0458) + z1 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0460), 1 + z1) :|: z1 >= 0, z0460 >= 0, z = 1 + (1 + z0460) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0461), 1 + z1209), 1 + z0), 1 + z0461 + z1209) :|: z1209 >= 0, z0 >= 0, z = 1 + z0 + (1 + z0461 + z1209), z0461 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0462), 1 + z1210), 1 + z0), 1 + z0462 + z1210) :|: z = 1 + z0 + (1 + z0462 + z1210), z1210 >= 0, z0 >= 0, z0462 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + z0), 1) :|: z0 >= 0, z = 1 + z0 + 1 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__isNatList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__and(a__isNat(z0464), 1 + z1212), 1 + (1 + z0) + (1 + z1)), 1 + z0464 + z1212, z0, z1) :|: z1212 >= 0, z1 >= 0, z0464 >= 0, z = 1 + z0, z' = 1 + z1 + (1 + z0464 + z1212), z0 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(2, 1 + (1 + z0) + (1 + z1)), 3, z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 + 3 a__take(z, z') -{ 0 }-> a__U31(a__and(0, 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(1 + z2, 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U21(a__isNatList(z0)) :|: z0 >= 0, z = 0, z' = z0 a__take(z, z') -{ 0 }-> a__U21(a__and(a__isNat(z0463), 1 + z1211)) :|: z1211 >= 0, z = 0, z' = 1 + z0463 + z1211, z0463 >= 0 a__take(z, z') -{ 0 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0, 1 + z0 = 2 a__take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__take(z, z') -{ 0 }-> 0 :|: z' = 3, z = 0, v0 >= 0, 2 = v0 a__take(z, z') -{ 0 }-> 0 :|: z0 >= 0, z = 0, z' = z0, v0 >= 0, 1 + z0 = v0 a__take(z, z') -{ 0 }-> 0 :|: z0 >= 0, z = 0, z' = z0, v0 >= 0, 0 = v0 a__take(z, z') -{ 0 }-> 1 + z0 :|: z' = 3, z = 0, 2 = z0, z0 >= 0 a__take(z, z') -{ 0 }-> 1 + z0' :|: z0 >= 0, z = 0, z' = z0, 1 + z0 = z0', z0' >= 0 a__take(z, z') -{ 0 }-> 1 + z0' :|: z0 >= 0, z = 0, z' = z0, 0 = z0', z0' >= 0 a__take(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__take(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__length(a__take(mark(z0480), mark(z1220))) :|: z = 1 + (1 + z0480 + z1220), z0480 >= 0, z1220 >= 0 mark(z) -{ 0 }-> a__length(a__length(mark(z0477))) :|: z = 1 + (1 + z0477), z0477 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z0483)) :|: z0483 >= 0, z = 1 + (1 + z0483) mark(z) -{ 0 }-> a__length(a__isNatIList(z0484)) :|: z0484 >= 0, z = 1 + (1 + z0484) mark(z) -{ 0 }-> a__length(a__isNat(z0482)) :|: z = 1 + (1 + z0482), z0482 >= 0 mark(z) -{ 0 }-> a__length(a__and(mark(z0481), z1221)) :|: z0481 >= 0, z = 1 + (1 + z0481 + z1221), z1221 >= 0 mark(z) -{ 0 }-> a__length(a__U31(mark(z0479), z1219, z240, z340)) :|: z240 >= 0, z = 1 + (1 + z0479 + z1219 + z240 + z340), z340 >= 0, z1219 >= 0, z0479 >= 0 mark(z) -{ 0 }-> a__length(a__U21(mark(z0478))) :|: z = 1 + (1 + z0478), z0478 >= 0 mark(z) -{ 0 }-> a__length(a__U11(mark(z0476), z1218)) :|: z0476 >= 0, z1218 >= 0, z = 1 + (1 + z0476 + z1218) mark(z) -{ 0 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(1 + mark(z0486)) :|: z = 1 + (1 + z0486), z0486 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z0485) + z1222) :|: z0485 >= 0, z1222 >= 0, z = 1 + (1 + z0485 + z1222) mark(z) -{ 0 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(a__take(mark(z0700), mark(z1320)), z1) :|: z1 >= 0, z = 1 + (1 + z0700 + z1320) + z1, z0700 >= 0, z1320 >= 0 mark(z) -{ 0 }-> a__and(a__length(mark(z0697)), z1) :|: z = 1 + (1 + z0697) + z1, z1 >= 0, z0697 >= 0 mark(z) -{ 0 }-> a__and(a__isNatList(z0703), z1) :|: z1 >= 0, z0703 >= 0, z = 1 + (1 + z0703) + z1 mark(z) -{ 0 }-> a__and(a__isNatIList(z0704), z1) :|: z1 >= 0, z = 1 + (1 + z0704) + z1, z0704 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z0702), z1) :|: z0702 >= 0, z1 >= 0, z = 1 + (1 + z0702) + z1 mark(z) -{ 0 }-> a__and(a__and(mark(z0701), z1321), z1) :|: z = 1 + (1 + z0701 + z1321) + z1, z1321 >= 0, z1 >= 0, z0701 >= 0 mark(z) -{ 0 }-> a__and(a__U31(mark(z0699), z1319, z260, z360), z1) :|: z1319 >= 0, z1 >= 0, z260 >= 0, z360 >= 0, z = 1 + (1 + z0699 + z1319 + z260 + z360) + z1, z0699 >= 0 mark(z) -{ 0 }-> a__and(a__U21(mark(z0698)), z1) :|: z1 >= 0, z0698 >= 0, z = 1 + (1 + z0698) + z1 mark(z) -{ 0 }-> a__and(a__U11(mark(z0696), z1318), z1) :|: z1 >= 0, z1318 >= 0, z = 1 + (1 + z0696 + z1318) + z1, z0696 >= 0 mark(z) -{ 0 }-> a__and(3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__and(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(1 + mark(z0706), z1) :|: z0706 >= 0, z1 >= 0, z = 1 + (1 + z0706) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z0705) + z1322, z1) :|: z1 >= 0, z = 1 + (1 + z0705 + z1322) + z1, z1322 >= 0, z0705 >= 0 mark(z) -{ 0 }-> a__and(1 + 0 + 3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U31(a__take(mark(z0502), mark(z1230)), z1, z2, z3) :|: z1 >= 0, z0502 >= 0, z1230 >= 0, z = 1 + (1 + z0502 + z1230) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__length(mark(z0499)), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0499) + z1 + z2 + z3, z0499 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatList(z0505), z1, z2, z3) :|: z1 >= 0, z0505 >= 0, z = 1 + (1 + z0505) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatIList(z0506), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0506) + z1 + z2 + z3, z0506 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNat(z0504), z1, z2, z3) :|: z0504 >= 0, z1 >= 0, z = 1 + (1 + z0504) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__and(mark(z0503), z1231), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0503 + z1231) + z1 + z2 + z3, z1231 >= 0, z0503 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U31(mark(z0501), z1229, z242, z342), z1, z2, z3) :|: z1 >= 0, z342 >= 0, z242 >= 0, z1229 >= 0, z = 1 + (1 + z0501 + z1229 + z242 + z342) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z0501 >= 0 mark(z) -{ 0 }-> a__U31(a__U21(mark(z0500)), z1, z2, z3) :|: z0500 >= 0, z1 >= 0, z = 1 + (1 + z0500) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U11(mark(z0498), z1228), z1, z2, z3) :|: z1 >= 0, z0498 >= 0, z = 1 + (1 + z0498 + z1228) + z1 + z2 + z3, z1228 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(3, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(2, z1, z2, z3) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1, z1, z2, z3) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1 + mark(z0508), z1, z2, z3) :|: z0508 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z = 1 + (1 + z0508) + z1 + z2 + z3 mark(z) -{ 0 }-> a__U31(1 + mark(z0507) + z1232, z1, z2, z3) :|: z = 1 + (1 + z0507 + z1232) + z1 + z2 + z3, z1 >= 0, z1232 >= 0, z0507 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1 + 0 + 3, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U21(a__take(mark(z0491), mark(z1225))) :|: z = 1 + (1 + z0491 + z1225), z1225 >= 0, z0491 >= 0 mark(z) -{ 0 }-> a__U21(a__length(mark(z0488))) :|: z = 1 + (1 + z0488), z0488 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatList(z0494)) :|: z = 1 + (1 + z0494), z0494 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatIList(z0495)) :|: z = 1 + (1 + z0495), z0495 >= 0 mark(z) -{ 0 }-> a__U21(a__isNat(z0493)) :|: z = 1 + (1 + z0493), z0493 >= 0 mark(z) -{ 0 }-> a__U21(a__and(mark(z0492), z1226)) :|: z1226 >= 0, z = 1 + (1 + z0492 + z1226), z0492 >= 0 mark(z) -{ 0 }-> a__U21(a__U31(mark(z0490), z1224, z241, z341)) :|: z1224 >= 0, z241 >= 0, z341 >= 0, z = 1 + (1 + z0490 + z1224 + z241 + z341), z0490 >= 0 mark(z) -{ 0 }-> a__U21(a__U21(mark(z0489))) :|: z0489 >= 0, z = 1 + (1 + z0489) mark(z) -{ 0 }-> a__U21(a__U11(mark(z0487), z1223)) :|: z = 1 + (1 + z0487 + z1223), z1223 >= 0, z0487 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z0497)) :|: z = 1 + (1 + z0497), z0497 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z0496) + z1227) :|: z = 1 + (1 + z0496 + z1227), z0496 >= 0, z1227 >= 0 mark(z) -{ 0 }-> a__U11(a__take(mark(z0469), mark(z1215)), z1) :|: z = 1 + (1 + z0469 + z1215) + z1, z1 >= 0, z1215 >= 0, z0469 >= 0 mark(z) -{ 0 }-> a__U11(a__length(mark(z0466)), z1) :|: z1 >= 0, z0466 >= 0, z = 1 + (1 + z0466) + z1 mark(z) -{ 0 }-> a__U11(a__isNatList(z0472), z1) :|: z1 >= 0, z = 1 + (1 + z0472) + z1, z0472 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatIList(z0473), z1) :|: z = 1 + (1 + z0473) + z1, z1 >= 0, z0473 >= 0 mark(z) -{ 0 }-> a__U11(a__isNat(z0471), z1) :|: z = 1 + (1 + z0471) + z1, z0471 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z0470), z1216), z1) :|: z1216 >= 0, z1 >= 0, z0470 >= 0, z = 1 + (1 + z0470 + z1216) + z1 mark(z) -{ 0 }-> a__U11(a__U31(mark(z0468), z1214, z239, z339), z1) :|: z1 >= 0, z0468 >= 0, z339 >= 0, z = 1 + (1 + z0468 + z1214 + z239 + z339) + z1, z239 >= 0, z1214 >= 0 mark(z) -{ 0 }-> a__U11(a__U21(mark(z0467)), z1) :|: z = 1 + (1 + z0467) + z1, z1 >= 0, z0467 >= 0 mark(z) -{ 0 }-> a__U11(a__U11(mark(z0465), z1213), z1) :|: z1 >= 0, z = 1 + (1 + z0465 + z1213) + z1, z1213 >= 0, z0465 >= 0 mark(z) -{ 0 }-> a__U11(3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__U11(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z0475), z1) :|: z0475 >= 0, z1 >= 0, z = 1 + (1 + z0475) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z0474) + z1217, z1) :|: z1 >= 0, z0474 >= 0, z1217 >= 0, z = 1 + (1 + z0474 + z1217) + z1 mark(z) -{ 0 }-> a__U11(1 + 0 + 3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> 3 :|: z = 3 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 0 :|: z = 3 mark(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + z0, z0 >= 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 3 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 1 + 0 + 3 = v0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 0, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 2, 2 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 1, 1 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 3 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 1 + 0 + 3 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0' :|: z = 1 + z0, z0 >= 0, 0 = z0', z0' >= 0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (45) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z') :|: z = 2, z' >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z - 1) :|: z - 1 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z - 1) :|: z - 1 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z) :|: z >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z011), 1 + z1) + A__ISNAT(1 + z011) :|: z011 >= 0, z1 >= 0, z = 1 + (1 + z011) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + (z - 1)) + A__ISNAT(0) :|: z - 1 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z012), 1 + z1) + A__ISNAT(1 + z012) :|: z1 >= 0, z = 1 + (1 + z012) + z1, z012 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z014), 1 + z1) + A__ISNAT(1 + z014) :|: z = 1 + (1 + z014) + z1, z1 >= 0, z014 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z013), 1 + z1) + A__ISNAT(1 + z013) :|: z1 >= 0, z013 >= 0, z = 1 + (1 + z013) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z015), 1 + z1) + A__ISNAT(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + (z - 1)) + A__ISNAT(0) :|: z - 1 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(a__and(a__isNat(z016), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z016), 1 + z14), 1 + z0), 1 + z016 + z14) + A__AND(1 + (1 + z016 + z14), 1 + z0) + A__ISNATLIST(1 + z016 + z14) :|: z = 1 + z0 + (1 + z016 + z14), z0 >= 0, z016 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(a__and(a__isNat(z017), 1 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z017), 1 + z15), 1 + z0), 1 + z017 + z15) + A__AND(1 + (1 + z017 + z15), 1 + z0) + A__ISNATLIST(1 + z017 + z15) :|: z15 >= 0, z = 1 + z0 + (1 + z017 + z15), z0 >= 0, z017 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(0, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(1 + 1, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z020 + z18) + A__AND(a__and(a__isNat(z020), 1 + z18), 1 + z0) + A__ISNATLIST(1 + z020 + z18) :|: z = 1 + z0 + (1 + z020 + z18), z18 >= 0, z0 >= 0, z020 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z021 + z19) + A__AND(a__and(a__isNat(z021), 1 + z19), 1 + z0) + A__ISNATLIST(1 + z021 + z19) :|: z021 >= 0, z19 >= 0, z = 1 + z0 + (1 + z021 + z19), z0 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z018 + z16), 1 + z0), 1 + z018 + z16) + A__AND(a__and(a__isNat(z018), 1 + z16), 1 + z0) + A__ISNATLIST(1 + z018 + z16) :|: z = 1 + z0 + (1 + z018 + z16), z0 >= 0, z16 >= 0, z018 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z019 + z17), 1 + z0), 1 + z019 + z17) + A__AND(a__and(a__isNat(z019), 1 + z17), 1 + z0) + A__ISNATLIST(1 + z019 + z17) :|: z019 >= 0, z = 1 + z0 + (1 + z019 + z17), z17 >= 0, z0 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__ISNATILIST(z') :|: z' >= 0, z = 0 A__TAKE(z, z') -{ 1 }-> 1 + A__U31(a__and(a__isNatIList(z2), 1 + (1 + (z - 1)) + (1 + z1)), z2, z - 1, z1) + A__AND(a__isNatIList(z2), 1 + (1 + (z - 1)) + (1 + z1)) + A__ISNATILIST(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__take(mark(z03), mark(z11))) + MARK(1 + z03 + z11) :|: z = 2, z11 >= 0, z03 >= 0, z' = 1 + z03 + z11 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z' - 1))) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z04), z12)) + MARK(1 + z04 + z12) :|: z = 2, z04 >= 0, z' = 1 + z04 + z12, z12 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z02), z1'', z2', z3')) + MARK(1 + z02 + z1'' + z2' + z3') :|: z = 2, z3' >= 0, z02 >= 0, z2' >= 0, z' = 1 + z02 + z1'' + z2' + z3', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z' - 1))) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z') :|: z = 2, z' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z08) + z13) + MARK(1 + z08 + z13) :|: z = 2, z' = 1 + z08 + z13, z08 >= 0, z13 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 2, z' = 3 A__U31(z, z', z'', z4) -{ 1 }-> 1 + MARK(z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__take(mark(z052), mark(z126)), z1, z2, z3) + MARK(1 + z052 + z126) :|: z = 1 + (1 + z052 + z126) + z1 + z2 + z3, z052 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z126 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__length(mark(z049)), z1, z2, z3) + MARK(1 + z049) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatList(z055), z1, z2, z3) + MARK(1 + z055) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNatIList(z056), z1, z2, z3) + MARK(1 + z056) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__isNat(z054), z1, z2, z3) + MARK(1 + z054) :|: z1 >= 0, z054 >= 0, z = 1 + (1 + z054) + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__and(mark(z053), z127), z1, z2, z3) + MARK(1 + z053 + z127) :|: z1 >= 0, z053 >= 0, z = 1 + (1 + z053 + z127) + z1 + z2 + z3, z127 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U31(mark(z051), z125, z22, z32), z1, z2, z3) + MARK(1 + z051 + z125 + z22 + z32) :|: z32 >= 0, z1 >= 0, z = 1 + (1 + z051 + z125 + z22 + z32) + z1 + z2 + z3, z051 >= 0, z22 >= 0, z125 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U21(mark(z050)), z1, z2, z3) + MARK(1 + z050) :|: z1 >= 0, z = 1 + (1 + z050) + z1 + z2 + z3, z050 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(a__U11(mark(z048), z124), z1, z2, z3) + MARK(1 + z048 + z124) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z048 + z124) + z1 + z2 + z3, z048 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(3, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(2, z1, z2, z3) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1, z1, z2, z3) + MARK(1) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(0, z1, z2, z3) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z058), z1, z2, z3) + MARK(1 + z058) :|: z1 >= 0, z = 1 + (1 + z058) + z1 + z2 + z3, z058 >= 0, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + mark(z057) + z128, z1, z2, z3) + MARK(1 + z057 + z128) :|: z1 >= 0, z128 >= 0, z = 1 + (1 + z057 + z128) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z057 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(1 + 0 + 3, z1, z2, z3) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__take(mark(z030), mark(z116)), z1) + MARK(1 + z030 + z116) :|: z1 >= 0, z = 1 + (1 + z030 + z116) + z1, z030 >= 0, z116 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z027)), z1) + MARK(1 + z027) :|: z = 1 + (1 + z027) + z1, z1 >= 0, z027 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z032), z1) + MARK(1 + z032) :|: z032 >= 0, z1 >= 0, z = 1 + (1 + z032) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z031), z117), z1) + MARK(1 + z031 + z117) :|: z = 1 + (1 + z031 + z117) + z1, z117 >= 0, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U31(mark(z029), z115, z2'', z3''), z1) + MARK(1 + z029 + z115 + z2'' + z3'') :|: z029 >= 0, z1 >= 0, z = 1 + (1 + z029 + z115 + z2'' + z3'') + z1, z115 >= 0, z3'' >= 0, z2'' >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U21(mark(z028)), z1) + MARK(1 + z028) :|: z1 >= 0, z = 1 + (1 + z028) + z1, z028 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z026), z114), z1) + MARK(1 + z026 + z114) :|: z = 1 + (1 + z026 + z114) + z1, z114 >= 0, z1 >= 0, z026 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(2, z - 3) + MARK(2) :|: z - 3 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1, z - 2) + MARK(1) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(0, z - 1) + MARK(0) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z036), z1) + MARK(1 + z036) :|: z036 >= 0, z1 >= 0, z = 1 + (1 + z036) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z035) + z118, z1) + MARK(1 + z035 + z118) :|: z035 >= 0, z1 >= 0, z118 >= 0, z = 1 + (1 + z035 + z118) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + 0 + 3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__take(mark(z041), mark(z121))) + MARK(1 + z041 + z121) :|: z = 1 + (1 + z041 + z121), z121 >= 0, z041 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z042), z122)) + MARK(1 + z042 + z122) :|: z042 >= 0, z = 1 + (1 + z042 + z122), z122 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U31(mark(z040), z120, z21, z31)) + MARK(1 + z040 + z120 + z21 + z31) :|: z120 >= 0, z21 >= 0, z31 >= 0, z040 >= 0, z = 1 + (1 + z040 + z120 + z21 + z31) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U21(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z037), z119)) + MARK(1 + z037 + z119) :|: z = 1 + (1 + z037 + z119), z119 >= 0, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z046) + z123) + MARK(1 + z046 + z123) :|: z046 >= 0, z123 >= 0, z = 1 + (1 + z046 + z123) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__AND(a__take(mark(z0437), mark(z1201)), z1) + MARK(1 + z0437 + z1201) :|: z0437 >= 0, z1201 >= 0, z1 >= 0, z = 1 + (1 + z0437 + z1201) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z0434)), z1) + MARK(1 + z0434) :|: z1 >= 0, z0434 >= 0, z = 1 + (1 + z0434) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z0440), z1) + MARK(1 + z0440) :|: z1 >= 0, z0440 >= 0, z = 1 + (1 + z0440) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z0441), z1) + MARK(1 + z0441) :|: z1 >= 0, z0441 >= 0, z = 1 + (1 + z0441) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z0439), z1) + MARK(1 + z0439) :|: z1 >= 0, z0439 >= 0, z = 1 + (1 + z0439) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z0438), z1202), z1) + MARK(1 + z0438 + z1202) :|: z1202 >= 0, z1 >= 0, z0438 >= 0, z = 1 + (1 + z0438 + z1202) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U31(mark(z0436), z1200, z237, z337), z1) + MARK(1 + z0436 + z1200 + z237 + z337) :|: z1 >= 0, z237 >= 0, z337 >= 0, z = 1 + (1 + z0436 + z1200 + z237 + z337) + z1, z0436 >= 0, z1200 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U21(mark(z0435)), z1) + MARK(1 + z0435) :|: z1 >= 0, z = 1 + (1 + z0435) + z1, z0435 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z0433), z1199), z1) + MARK(1 + z0433 + z1199) :|: z0433 >= 0, z1 >= 0, z = 1 + (1 + z0433 + z1199) + z1, z1199 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(2, z - 3) + MARK(2) :|: z - 3 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1, z - 2) + MARK(1) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(0, z - 1) + MARK(0) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0443), z1) + MARK(1 + z0443) :|: z0443 >= 0, z1 >= 0, z = 1 + (1 + z0443) + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z0442) + z1203, z1) + MARK(1 + z0442 + z1203) :|: z1 >= 0, z1203 >= 0, z = 1 + (1 + z0442 + z1203) + z1, z0442 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + 0 + 3, z - 4) + MARK(3) :|: z - 4 >= 0 a__U11(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__take(mark(z0448), mark(z1206))) :|: z = 2, z1206 >= 0, z0448 >= 0, z' = 1 + z0448 + z1206 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z0449), z1207)) :|: z = 2, z' = 1 + z0449 + z1207, z0449 >= 0, z1207 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U31(mark(z0447), z1205, z238, z338)) :|: z = 2, z0447 >= 0, z' = 1 + z0447 + z1205 + z238 + z338, z1205 >= 0, z238 >= 0, z338 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U21(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z0444), z1204)) :|: z = 2, z0444 >= 0, z1204 >= 0, z' = 1 + z0444 + z1204 a__U11(z, z') -{ 0 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z0453) + z1208) :|: z = 2, z' = 1 + z0453 + z1208, z0453 >= 0, z1208 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__U21(z) -{ 0 }-> 1 :|: z = 2 a__U21(z) -{ 0 }-> 0 :|: z >= 0 a__U21(z) -{ 0 }-> 1 + z :|: z >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 1 + mark(z4) + (1 + z'' + z') :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 1 + z + z' + z'' + z4 :|: z' >= 0, z >= 0, z'' >= 0, z4 >= 0 a__and(z, z') -{ 0 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__and(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: z >= 0 a__isNat(z) -{ 0 }-> 1 + z :|: z >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z) :|: z >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z0455), 1 + z1) :|: z1 >= 0, z0455 >= 0, z = 1 + (1 + z0455) + z1 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z0456), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0456) + z1, z0456 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: z >= 0 a__isNatIList(z) -{ 0 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0457), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z0457) + z1, z0457 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z0459), 1 + z1) :|: z = 1 + (1 + z0459) + z1, z1 >= 0, z0459 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0458), 1 + z1) :|: z1 >= 0, z0458 >= 0, z = 1 + (1 + z0458) + z1 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0460), 1 + z1) :|: z1 >= 0, z0460 >= 0, z = 1 + (1 + z0460) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: z >= 0 a__isNatList(z) -{ 0 }-> 1 + z :|: z >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0461), 1 + z1209), 1 + z0), 1 + z0461 + z1209) :|: z1209 >= 0, z0 >= 0, z = 1 + z0 + (1 + z0461 + z1209), z0461 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z0462), 1 + z1210), 1 + z0), 1 + z0462 + z1210) :|: z = 1 + z0 + (1 + z0462 + z1210), z1210 >= 0, z0 >= 0, z0462 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + (z - 2)), 1) :|: z - 2 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: z >= 0 a__length(z) -{ 0 }-> 1 + z :|: z >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__isNatList(z2), 1 + (1 + (z - 1)) + (1 + z1)), z2, z - 1, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__and(a__isNat(z0464), 1 + z1212), 1 + (1 + (z - 1)) + (1 + z1)), 1 + z0464 + z1212, z - 1, z1) :|: z1212 >= 0, z1 >= 0, z0464 >= 0, z' = 1 + z1 + (1 + z0464 + z1212), z - 1 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(2, 1 + (1 + (z - 1)) + (1 + (z' - 4))), 3, z - 1, z' - 4) :|: z' - 4 >= 0, z - 1 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(0, 1 + (1 + (z - 1)) + (1 + z1)), z2, z - 1, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(1 + z2, 1 + (1 + (z - 1)) + (1 + z1)), z2, z - 1, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U21(a__isNatList(z')) :|: z' >= 0, z = 0 a__take(z, z') -{ 0 }-> a__U21(a__and(a__isNat(z0463), 1 + z1211)) :|: z1211 >= 0, z = 0, z' = 1 + z0463 + z1211, z0463 >= 0 a__take(z, z') -{ 0 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 0 }-> 1 :|: z' >= 0, z = 0, 1 + z' = 2 a__take(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__take(z, z') -{ 0 }-> 0 :|: z' = 3, z = 0, v0 >= 0, 2 = v0 a__take(z, z') -{ 0 }-> 0 :|: z' >= 0, z = 0, v0 >= 0, 1 + z' = v0 a__take(z, z') -{ 0 }-> 0 :|: z' >= 0, z = 0, v0 >= 0, 0 = v0 a__take(z, z') -{ 0 }-> 1 + z0 :|: z' = 3, z = 0, 2 = z0, z0 >= 0 a__take(z, z') -{ 0 }-> 1 + z0' :|: z' >= 0, z = 0, 1 + z' = z0', z0' >= 0 a__take(z, z') -{ 0 }-> 1 + z0' :|: z' >= 0, z = 0, 0 = z0', z0' >= 0 a__take(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__take(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__length(a__take(mark(z0480), mark(z1220))) :|: z = 1 + (1 + z0480 + z1220), z0480 >= 0, z1220 >= 0 mark(z) -{ 0 }-> a__length(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__and(mark(z0481), z1221)) :|: z0481 >= 0, z = 1 + (1 + z0481 + z1221), z1221 >= 0 mark(z) -{ 0 }-> a__length(a__U31(mark(z0479), z1219, z240, z340)) :|: z240 >= 0, z = 1 + (1 + z0479 + z1219 + z240 + z340), z340 >= 0, z1219 >= 0, z0479 >= 0 mark(z) -{ 0 }-> a__length(a__U21(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__U11(mark(z0476), z1218)) :|: z0476 >= 0, z1218 >= 0, z = 1 + (1 + z0476 + z1218) mark(z) -{ 0 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z0485) + z1222) :|: z0485 >= 0, z1222 >= 0, z = 1 + (1 + z0485 + z1222) mark(z) -{ 0 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__isNatList(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__isNatIList(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__isNat(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__and(a__take(mark(z0700), mark(z1320)), z1) :|: z1 >= 0, z = 1 + (1 + z0700 + z1320) + z1, z0700 >= 0, z1320 >= 0 mark(z) -{ 0 }-> a__and(a__length(mark(z0697)), z1) :|: z = 1 + (1 + z0697) + z1, z1 >= 0, z0697 >= 0 mark(z) -{ 0 }-> a__and(a__isNatList(z0703), z1) :|: z1 >= 0, z0703 >= 0, z = 1 + (1 + z0703) + z1 mark(z) -{ 0 }-> a__and(a__isNatIList(z0704), z1) :|: z1 >= 0, z = 1 + (1 + z0704) + z1, z0704 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z0702), z1) :|: z0702 >= 0, z1 >= 0, z = 1 + (1 + z0702) + z1 mark(z) -{ 0 }-> a__and(a__and(mark(z0701), z1321), z1) :|: z = 1 + (1 + z0701 + z1321) + z1, z1321 >= 0, z1 >= 0, z0701 >= 0 mark(z) -{ 0 }-> a__and(a__U31(mark(z0699), z1319, z260, z360), z1) :|: z1319 >= 0, z1 >= 0, z260 >= 0, z360 >= 0, z = 1 + (1 + z0699 + z1319 + z260 + z360) + z1, z0699 >= 0 mark(z) -{ 0 }-> a__and(a__U21(mark(z0698)), z1) :|: z1 >= 0, z0698 >= 0, z = 1 + (1 + z0698) + z1 mark(z) -{ 0 }-> a__and(a__U11(mark(z0696), z1318), z1) :|: z1 >= 0, z1318 >= 0, z = 1 + (1 + z0696 + z1318) + z1, z0696 >= 0 mark(z) -{ 0 }-> a__and(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__and(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 0 }-> a__and(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(0, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__and(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__and(1 + mark(z0706), z1) :|: z0706 >= 0, z1 >= 0, z = 1 + (1 + z0706) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z0705) + z1322, z1) :|: z1 >= 0, z = 1 + (1 + z0705 + z1322) + z1, z1322 >= 0, z0705 >= 0 mark(z) -{ 0 }-> a__and(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U31(a__take(mark(z0502), mark(z1230)), z1, z2, z3) :|: z1 >= 0, z0502 >= 0, z1230 >= 0, z = 1 + (1 + z0502 + z1230) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__length(mark(z0499)), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0499) + z1 + z2 + z3, z0499 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatList(z0505), z1, z2, z3) :|: z1 >= 0, z0505 >= 0, z = 1 + (1 + z0505) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNatIList(z0506), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0506) + z1 + z2 + z3, z0506 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__isNat(z0504), z1, z2, z3) :|: z0504 >= 0, z1 >= 0, z = 1 + (1 + z0504) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__and(mark(z0503), z1231), z1, z2, z3) :|: z1 >= 0, z = 1 + (1 + z0503 + z1231) + z1 + z2 + z3, z1231 >= 0, z0503 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U31(mark(z0501), z1229, z242, z342), z1, z2, z3) :|: z1 >= 0, z342 >= 0, z242 >= 0, z1229 >= 0, z = 1 + (1 + z0501 + z1229 + z242 + z342) + z1 + z2 + z3, z2 >= 0, z3 >= 0, z0501 >= 0 mark(z) -{ 0 }-> a__U31(a__U21(mark(z0500)), z1, z2, z3) :|: z0500 >= 0, z1 >= 0, z = 1 + (1 + z0500) + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(a__U11(mark(z0498), z1228), z1, z2, z3) :|: z1 >= 0, z0498 >= 0, z = 1 + (1 + z0498 + z1228) + z1 + z2 + z3, z1228 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(3, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(2, z1, z2, z3) :|: z1 >= 0, z = 1 + 2 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1, z1, z2, z3) :|: z = 1 + 1 + z1 + z2 + z3, z1 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z = 1 + 0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(0, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1 + mark(z0508), z1, z2, z3) :|: z0508 >= 0, z1 >= 0, z2 >= 0, z3 >= 0, z = 1 + (1 + z0508) + z1 + z2 + z3 mark(z) -{ 0 }-> a__U31(1 + mark(z0507) + z1232, z1, z2, z3) :|: z = 1 + (1 + z0507 + z1232) + z1 + z2 + z3, z1 >= 0, z1232 >= 0, z0507 >= 0, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U31(1 + 0 + 3, z1, z2, z3) :|: z1 >= 0, z = 1 + 3 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U21(a__take(mark(z0491), mark(z1225))) :|: z = 1 + (1 + z0491 + z1225), z1225 >= 0, z0491 >= 0 mark(z) -{ 0 }-> a__U21(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(a__and(mark(z0492), z1226)) :|: z1226 >= 0, z = 1 + (1 + z0492 + z1226), z0492 >= 0 mark(z) -{ 0 }-> a__U21(a__U31(mark(z0490), z1224, z241, z341)) :|: z1224 >= 0, z241 >= 0, z341 >= 0, z = 1 + (1 + z0490 + z1224 + z241 + z341), z0490 >= 0 mark(z) -{ 0 }-> a__U21(a__U21(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(a__U11(mark(z0487), z1223)) :|: z = 1 + (1 + z0487 + z1223), z1223 >= 0, z0487 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U21(1 + mark(z0496) + z1227) :|: z = 1 + (1 + z0496 + z1227), z0496 >= 0, z1227 >= 0 mark(z) -{ 0 }-> a__U11(a__take(mark(z0469), mark(z1215)), z1) :|: z = 1 + (1 + z0469 + z1215) + z1, z1 >= 0, z1215 >= 0, z0469 >= 0 mark(z) -{ 0 }-> a__U11(a__length(mark(z0466)), z1) :|: z1 >= 0, z0466 >= 0, z = 1 + (1 + z0466) + z1 mark(z) -{ 0 }-> a__U11(a__isNatList(z0472), z1) :|: z1 >= 0, z = 1 + (1 + z0472) + z1, z0472 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatIList(z0473), z1) :|: z = 1 + (1 + z0473) + z1, z1 >= 0, z0473 >= 0 mark(z) -{ 0 }-> a__U11(a__isNat(z0471), z1) :|: z = 1 + (1 + z0471) + z1, z0471 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z0470), z1216), z1) :|: z1216 >= 0, z1 >= 0, z0470 >= 0, z = 1 + (1 + z0470 + z1216) + z1 mark(z) -{ 0 }-> a__U11(a__U31(mark(z0468), z1214, z239, z339), z1) :|: z1 >= 0, z0468 >= 0, z339 >= 0, z = 1 + (1 + z0468 + z1214 + z239 + z339) + z1, z239 >= 0, z1214 >= 0 mark(z) -{ 0 }-> a__U11(a__U21(mark(z0467)), z1) :|: z = 1 + (1 + z0467) + z1, z1 >= 0, z0467 >= 0 mark(z) -{ 0 }-> a__U11(a__U11(mark(z0465), z1213), z1) :|: z1 >= 0, z = 1 + (1 + z0465 + z1213) + z1, z1213 >= 0, z0465 >= 0 mark(z) -{ 0 }-> a__U11(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U11(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 0 }-> a__U11(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(0, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U11(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__U11(1 + mark(z0475), z1) :|: z0475 >= 0, z1 >= 0, z = 1 + (1 + z0475) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z0474) + z1217, z1) :|: z1 >= 0, z0474 >= 0, z1217 >= 0, z = 1 + (1 + z0474 + z1217) + z1 mark(z) -{ 0 }-> a__U11(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> 3 :|: z = 3 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: z >= 0 mark(z) -{ 0 }-> 0 :|: z = 3 mark(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 mark(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 3 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 3, v0 >= 0, 1 + 0 + 3 = v0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 0, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 2, 2 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 1, 1 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 3 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 3, 1 + 0 + 3 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0' :|: z - 1 >= 0, 0 = z0', z0' >= 0 mark(z) -{ 0 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (47) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__U21(v0) -> null_a__U21 [0] a__U31(v0, v1, v2, v3) -> null_a__U31 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] A__U11(v0, v1) -> null_A__U11 [0] A__U31(v0, v1, v2, v3) -> null_A__U31 [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__LENGTH(v0) -> null_A__LENGTH [0] A__TAKE(v0, v1) -> null_A__TAKE [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__zeros, null_a__U11, null_a__U21, null_a__U31, null_a__and, null_a__isNat, null_a__isNatIList, null_a__isNatList, null_a__length, null_a__take, null_mark, null_A__U11, null_A__U31, null_A__AND, null_A__ISNAT, null_A__ISNATLIST, null_A__LENGTH, null_A__TAKE, null_MARK, const ---------------------------------------- (48) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__U31(tt, z0, z1, z2) -> c6(MARK(z2)) [1] A__AND(tt, z0) -> c8(MARK(z0)) [1] A__ISNAT(length(z0)) -> c11(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c12(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c14(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c16(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c19(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c20(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] 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)) [1] 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)) [1] MARK(U11(z0, z1)) -> c29(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c30(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(U31(z0, z1, z2, z3)) -> c32(A__U31(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(take(z0, z1)) -> c33(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c34(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(and(z0, z1)) -> c35(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c36(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c37(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c38(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c39(MARK(z0)) [1] MARK(s(z0)) -> c42(MARK(z0)) [1] A__TAKE(0, z0) -> c25(A__ISNATILIST(z0)) [1] MARK(U21(z0)) -> c31(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__U21(tt) -> nil [0] a__U21(z0) -> U21(z0) [0] a__U31(tt, z0, z1, z2) -> cons(mark(z2), take(z1, z0)) [0] a__U31(z0, z1, z2, z3) -> U31(z0, z1, z2, z3) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] a__take(0, z0) -> a__U21(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__U31(a__and(a__isNatIList(z2), and(isNat(z0), isNat(z1))), z2, z0, z1) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(U21(z0)) -> a__U21(mark(z0)) [0] mark(U31(z0, z1, z2, z3)) -> a__U31(mark(z0), z1, z2, z3) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__U21(v0) -> null_a__U21 [0] a__U31(v0, v1, v2, v3) -> null_a__U31 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] A__U11(v0, v1) -> null_A__U11 [0] A__U31(v0, v1, v2, v3) -> null_A__U31 [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__LENGTH(v0) -> null_A__LENGTH [0] A__TAKE(v0, v1) -> null_A__TAKE [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c2:null_A__U11 tt :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c2 :: c23:null_A__LENGTH -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c2:null_A__U11 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c23:null_A__LENGTH mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK A__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c6:null_A__U31 c6 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c6:null_A__U31 A__AND :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c8:null_A__AND c8 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c8:null_A__AND A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c11:c12:null_A__ISNAT length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c11 :: c19:c20:null_A__ISNATLIST -> c11:c12:null_A__ISNAT A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c19:c20:null_A__ISNATLIST s :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c12 :: c11:c12:null_A__ISNAT -> c11:c12:null_A__ISNAT A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c14:c16 c14 :: c19:c20:null_A__ISNATLIST -> c14:c16 cons :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c16 :: c8:null_A__AND -> c11:c12:null_A__ISNAT -> c14:c16 a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c19 :: c8:null_A__AND -> c11:c12:null_A__ISNAT -> c19:c20:null_A__ISNATLIST isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c20 :: c8:null_A__AND -> c11:c12:null_A__ISNAT -> c19:c20:null_A__ISNATLIST c23 :: c2:null_A__U11 -> c8:null_A__AND -> c19:c20:null_A__ISNATLIST -> c23:null_A__LENGTH a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark A__TAKE :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> c26:c25:null_A__TAKE c26 :: c6:null_A__U31 -> c8:null_A__AND -> c14:c16 -> c26:c25:null_A__TAKE a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c29 :: c2:null_A__U11 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c30 :: c23:null_A__LENGTH -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c32 :: c6:null_A__U31 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c33 :: c26:c25:null_A__TAKE -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c34 :: c26:c25:null_A__TAKE -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c35 :: c8:null_A__AND -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c36 :: c11:c12:null_A__ISNAT -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c37 :: c19:c20:null_A__ISNATLIST -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c38 :: c14:c16 -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c39 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK c42 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK 0 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c25 :: c14:c16 -> c26:c25:null_A__TAKE U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark c31 :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK -> c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark -> tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U21 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__U31 :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_a__take :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:take:isNat:and:U11:U31:0:U21:zeros:nil:null_a__zeros:null_a__U11:null_a__U21:null_a__U31:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_a__take:null_mark null_A__U11 :: c2:null_A__U11 null_A__U31 :: c6:null_A__U31 null_A__AND :: c8:null_A__AND null_A__ISNAT :: c11:c12:null_A__ISNAT null_A__ISNATLIST :: c19:c20:null_A__ISNATLIST null_A__LENGTH :: c23:null_A__LENGTH null_A__TAKE :: c26:c25:null_A__TAKE null_MARK :: c29:c30:c32:c33:c34:c35:c36:c37:c38:c39:c42:c31:null_MARK const :: c14:c16 Rewrite Strategy: INNERMOST ---------------------------------------- (49) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 null_a__zeros => 0 null_a__U11 => 0 null_a__U21 => 0 null_a__U31 => 0 null_a__and => 0 null_a__isNat => 0 null_a__isNatIList => 0 null_a__isNatList => 0 null_a__length => 0 null_a__take => 0 null_mark => 0 null_A__U11 => 0 null_A__U31 => 0 null_A__AND => 0 null_A__ISNAT => 0 null_A__ISNATLIST => 0 null_A__LENGTH => 0 null_A__TAKE => 0 null_MARK => 0 const => 0 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__isNatList(z1), 1 + z0), z1) + A__AND(a__isNatList(z1), 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__TAKE(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__TAKE(z, z') -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z0 >= 0, z = 0, z' = z0 A__TAKE(z, z') -{ 1 }-> 1 + A__U31(a__and(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) + A__AND(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)) + A__ISNATILIST(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(mark(z0)) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__U31(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 A__U31(z, z', z'', z4) -{ 1 }-> 1 + MARK(z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 MARK(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U31(mark(z0), z1, z2, z3) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(mark(z0)) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__U21(z) -{ 0 }-> 1 :|: z = 2 a__U21(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__U21(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 a__U31(z, z', z'', z4) -{ 0 }-> 1 + mark(z2) + (1 + z1 + z0) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 a__U31(z, z', z'', z4) -{ 0 }-> 1 + z0 + z1 + z2 + z3 :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z4 = z3, z2 >= 0, z3 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z0), 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0), 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__isNatList(z1), 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__take(z, z') -{ 0 }-> a__U31(a__and(a__isNatIList(z2), 1 + (1 + z0) + (1 + z1)), z2, z0, z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__U21(a__isNatIList(z0)) :|: z0 >= 0, z = 0, z' = z0 a__take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__take(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__zeros :|: z = 3 mark(z) -{ 0 }-> a__take(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__length(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U31(mark(z0), z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__U21(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__U11(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (51) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (53) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) ---------------------------------------- (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)) 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 ---------------------------------------- (55) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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)) 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 ---------------------------------------- (57) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (59) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 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)) 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 ---------------------------------------- (61) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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)) 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 ---------------------------------------- (65) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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)) 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 ---------------------------------------- (69) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 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)) 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 ---------------------------------------- (73) 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)) ---------------------------------------- (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(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 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (77) 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)) ---------------------------------------- (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(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 ---------------------------------------- (79) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U11(nil, x1)) -> c29(A__U11(nil, x1), MARK(nil)) MARK(U11(0, x1)) -> c29(A__U11(0, x1), MARK(0)) ---------------------------------------- (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(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 ---------------------------------------- (81) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 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(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 ---------------------------------------- (83) 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)) ---------------------------------------- (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(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 ---------------------------------------- (85) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(length(tt)) -> c30(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c30(A__LENGTH(0), MARK(0)) MARK(length(nil)) -> c30(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (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(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 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 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(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 ---------------------------------------- (89) 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)) ---------------------------------------- (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(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 ---------------------------------------- (91) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U31(nil, x1, x2, x3)) -> c32(A__U31(nil, x1, x2, x3), MARK(nil)) MARK(U31(0, x1, x2, x3)) -> c32(A__U31(0, x1, x2, x3), MARK(0)) ---------------------------------------- (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(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 ---------------------------------------- (93) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (95) 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)) ---------------------------------------- (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(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 ---------------------------------------- (97) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(take(tt, x1)) -> c33(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(nil, x1)) -> c33(A__TAKE(nil, mark(x1)), MARK(nil)) ---------------------------------------- (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(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 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 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(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 ---------------------------------------- (101) 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)) ---------------------------------------- (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(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 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 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(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 ---------------------------------------- (105) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (107) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (111) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (113) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (115) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (119) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (123) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (125) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (127) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (129) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (131) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (133) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (135) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (137) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (139) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (141) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (143) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (147) 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)) ---------------------------------------- (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(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 ---------------------------------------- (149) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) ---------------------------------------- (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(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 ---------------------------------------- (151) 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))) ---------------------------------------- (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(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 ---------------------------------------- (153) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (155) 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))) ---------------------------------------- (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(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 ---------------------------------------- (157) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (159) 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))) ---------------------------------------- (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(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 ---------------------------------------- (161) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (163) 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))) ---------------------------------------- (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(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 ---------------------------------------- (165) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (167) 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))) ---------------------------------------- (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(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 ---------------------------------------- (169) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (171) 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))) ---------------------------------------- (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__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 ---------------------------------------- (173) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (175) 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))) ---------------------------------------- (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__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 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (179) 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))) ---------------------------------------- (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__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 ---------------------------------------- (181) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (183) 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)) ---------------------------------------- (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__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 ---------------------------------------- (185) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (187) 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)) ---------------------------------------- (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__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 ---------------------------------------- (189) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (191) 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))) ---------------------------------------- (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__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 ---------------------------------------- (193) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__LENGTH(cons(x0, nil)) -> c23(A__AND(isNatList(nil), isNat(x0))) ---------------------------------------- (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, 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 ---------------------------------------- (195) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (197) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (199) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (201) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (203) 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))) ---------------------------------------- (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, 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 ---------------------------------------- (205) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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, 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 ---------------------------------------- (207) 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)) ---------------------------------------- (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(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 ---------------------------------------- (209) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (211) 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)) ---------------------------------------- (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(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 ---------------------------------------- (213) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (215) 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))) ---------------------------------------- (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(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 ---------------------------------------- (217) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (218) 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 ---------------------------------------- (219) 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))) ---------------------------------------- (220) 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 ---------------------------------------- (221) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (222) 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 ---------------------------------------- (223) 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))) ---------------------------------------- (224) 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 ---------------------------------------- (225) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (226) 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 ---------------------------------------- (227) 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))) ---------------------------------------- (228) 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 ---------------------------------------- (229) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (230) 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 ---------------------------------------- (231) 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))) ---------------------------------------- (232) 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 ---------------------------------------- (233) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (234) 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 ---------------------------------------- (235) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (236) 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 ---------------------------------------- (237) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (238) 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 ---------------------------------------- (239) 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 ---------------------------------------- (240) 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 ---------------------------------------- (241) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (242) 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 ---------------------------------------- (243) 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 ---------------------------------------- (244) 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 ---------------------------------------- (245) 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 ---------------------------------------- (246) 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 ---------------------------------------- (247) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (248) 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 ---------------------------------------- (249) 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 ---------------------------------------- (250) 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 ---------------------------------------- (251) 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 ---------------------------------------- (252) 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.